C++ builder 控件消息重载

最近在工作需要写一个功能就是把在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;

void __fastcall TFormmain::BoxWndProc(Messages::TMessage &Message)
{

    if (Message.Msg == CM_MOUSELEAVE)
    {

    }
    if (Message.Msg == CM_MOUSEENTER)
    {

    }
    OldToolWndProc(Message);

}

这样Panel上的控件就都可以用了。

发现以前用过的方法后来再用的时候还是需要百度太浪费时间了。决定将自己遇到的问题及解决办法记录下来。方便自己以后查询,也不用再去查自己原来程序中的代码了。

那样也是很累的。。委屈希望这个习惯能多多坚持,直到自己离开这行;

这是第一篇,以后会把以前遇到的问题慢慢的贴上来,明明先生...Fighting!!!!





  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值