bcb最小化事件编辑

来源:互联网 发布:郑州大学网络怎么连接 编辑:程序博客网 时间:2024/06/05 02:02

最大化、最小化将发送WM_SYSCOMMAND消息。要处理该消息,可以编码手动

进行消息映射:
1、在Form的头文件的TForm类声明的private:下面添加:
void __fastcall OnMinMaxSize(TMessage &Msg);

BEGIN_MESSAGE_MAP
MESSAGE_HANDLER(WM_SYSCOMMAND, TMessage, OnMinMaxSize)
END_MESSAGE_MAP(TForm)

2、在Form的单元文件中添加事件函数的定义:
void __fastcall TForm1::OnMinMaxSize(TMessage& Msg)
{

//允许最大化的时候双击标题栏也会最大化窗口。
//所以也要对WM_NCLBUTTONDBLCLK消息进行相应。

if (Message.Msg == WM_NCLBUTTONDBLCLK) //在非客户区双击左键

{

if (!bMaxed)
{
//代码
}
else
{
//代码
}

}
if (Msg.WParam == SC_MINIMIZE)
{
//加入自己的最小化时的事件
}
else if (Msg.WParam == SC_MAXIMIZE)
{
//加入自己的最大化时的事件
}
TForm::Dispatch(&Msg); //将消息传给VCL以继续处理
}