IPV6 发表于 2007-8-22 09:04

[求助]BCB中最小化窗口的事件在那编写?

BCB中最小化窗口的事件在那编写?<BR>我一直没找到。

一笔苍穹 发表于 2007-8-23 11:45

<P>最大化、最小化将发送WM_SYSCOMMAND消息。要处理该消息,可以编码手动进行消息映射: <br>1、在Form的头文件的TForm类声明的private:下面添加:<br>void __fastcall OnMinMaxSize(TMessage &amp;Msg);</P>
<P>BEGIN_MESSAGE_MAP<br>MESSAGE_HANDLER(WM_SYSCOMMAND, TMessage, OnMinMaxSize)<br>END_MESSAGE_MAP(TForm)<br><br>2、在Form的单元文件中添加事件函数的定义:<br>void __fastcall TForm1::OnMinMaxSize(TMessage&amp; Msg)<br>{<br>     if (Msg.WParam == SC_MINIMIZE)<br>     {<br>         //加入自己的最小化时的事件<br>     }<br>     else if (Msg.WParam == SC_MAXIMIZE)<br>     {<br>         //加入自己的最大化时的事件<br>     }<br>     TForm::Dispatch(&amp;Msg); //将消息传给VCL以继续处理<br>}</P>
[align=right][color=#000066][此贴子已经被作者于2007-8-23 11:46:52编辑过][/color][/align]

IPV6 发表于 2007-8-23 16:03

<P>谢谢一笔苍穹版主,我用的就是消息相应。<br>哈哈哈[em02]。<br>不过有一点有注意哦!允许最大化的时候双击标题栏也会最大化窗口。<br>所以也要对WM_NCLBUTTONDBLCLK消息进行相应。<br>代码如下:<br>        if (Message.Msg == WM_NCLBUTTONDBLCLK) //在非客户区双击左键<br>        {<br>                if (!bMaxed)<br>                {<br>                       //代码<br>                }<br>                else<br>                {<br>                       //代码<br>                }</P>
<P>        }<br></P>
[align=right][color=#000066][此贴子已经被作者于2007-8-23 16:07:21编辑过][/color][/align]

一笔苍穹 发表于 2007-8-23 16:57

恩,是呢,这样就更周全了,呵呵

页: [1]

编程论坛