最近在工作需要写一个功能就是把在Panel中增加一个鼠标离开事件。用到BCB的自定义消息CM_MOUSELEAVE、CM_MOUSEENTE
一开写了一个自定义消息接重函数BoxWndProc(Messages::TMessage &Message)
TeeCommander1(Panel的名称);
TeeCommander1->WindowProc=BoxWndProc;。(重载消息)
void __fastcall TFormmain::BoxWndProc(Messages::TMessage &Message)
{
if (Message.Msg == CM_MOUSELEAVE)
{
}
if (Message.Msg == CM_MOUSEENTER)
{
}
TeeCommander1->Dispatch(&Message);
}
完成后Panel上的控件无法在响应单击及键盘事件了。baidu后找到一些灵感,结合自己以前写过的程序找到了解决法。
方法如下:
TWndMethod OldToolWndProc; //定义一个消息事件
OldToolWndProc=TeeCommander1->WindowProc;
TeeCommander1->WindowProc=BoxWndProc;
{
if (Message.Msg == CM_MOUSELEAVE)
{
}
if (Message.Msg == CM_MOUSEENTER)
{
}
OldToolWndProc(Message);
}
这样Panel上的控件就都可以用了。
发现以前用过的方法后来再用的时候还是需要百度太浪费时间了。决定将自己遇到的问题及解决办法记录下来。方便自己以后查询,也不用再去查自己原来程序中的代码了。
那样也是很累的。。希望这个习惯能多多坚持,直到自己离开这行;
这是第一篇,以后会把以前遇到的问题慢慢的贴上来,明明先生...Fighting!!!!