谁能和我说CB中消息的处理和自定义的用法.小弟不是很明白.谢谢大家,进来看一下也好!
CB中有他自己默认的消息,我们也可以自定义消息,如果用他默认的消息是用
BEGIN_MESSAGE_MAP
VCL_MESSAGE_HANDLER(WM_SYSCOMMAND, TMessage, WMSysCommand);
END_MESSAGE_MAP(TCustomForm)
这个里面是可以更改系统的消息的,好像我在下面消息的触发是在最小化之后我再单击一下还原时才触发的,而我这边不是定义了一最小化就触发吗?
void __fastcall TForm1::WMSysCommand(TMessage &Message)
{
TWinControl::Dispatch(&Message);
// 处理最消化的命令
if (Message.WParam == SC_MINIMIZE)
{
ShowMessage("hello");
}
}
还有当我自己定义一个消息时,应怎么办?
Message.WParam这个里面的WParam,好像还有LParam,这些有什么区别啊?
第二个问题:
const int WM_NC_NOTIFY = (WM_USER + 1);
// 处理自定义通知消息
void __fastcall TForm1::WMNCNotify(TMessage &Message)
{
TWinControl::Dispatch(&Message);
if (Message.Msg == WM_NC_NOTIFY)
{
switch (Message.LParam)
{
case WM_LBUTTONDBLCLK: // 双击左键还原程序
............
break;
case WM_RBUTTONUP: // 松开右键
// 其它处理
break;
}
}
}
这个上面的又是什么意思啊?"Message.Msg",Message中有Msg这个吗?他那个LParam是什么意思呢?我觉得直接捕捉就可以了啊?
请高手指点,万分感激!