如何捕获窗口内控件的鼠标消息?

mopyman 2006-04-05 02:54:58
在主窗口内用BEGIN_MESSAGE_MAP
VCL_MESSAGE_HANDLER(WM_LBUTTONDOWN,TMessage,OnTrackBarLButtonDown)
END_MESSAGE_MAP(TForm)
做消息映射只能捕获主窗口的鼠标消息,因为它更改的是主窗口的消息循环,如和捕获子控件的消息呢?
子类化可以,可是比较麻烦,有其他方法吗?
...全文
347 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
mopyman 2006-04-05
  • 打赏
  • 举报
回复
除了子类化还有其他方法吗?修改组件的源代码好像难度也挺高的
mopyman 2006-04-05
  • 打赏
  • 举报
回复
楼上老兄的意思就是子类化Memo1组件了。
老之 2006-04-05
  • 打赏
  • 举报
回复
捕获Memo1中鼠标消息,将消息添加到Memo2中的例子:
private: // User declarations
void __fastcall AppProc(TMessage &Message);

void __fastcall TForm1::AppProc(TMessage &Msg)
{
switch (Msg.Msg)
{
case WM_LBUTTONDOWN:Memo2->Lines->Add("WM_LBUTTONDOWN");break;
case WM_LBUTTONUP:Memo2->Lines->Add("WM_LBUTTONUP");break;
case WM_MOUSEWHEEL:Memo2->Lines->Add("WM_MOUSEWHEEL");break;
}
Memo1->Dispatch(&Msg);
}


void __fastcall TForm1::FormCreate(TObject *Sender)
{
Memo1->WindowProc=AppProc;
}

604

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder VCL组件使用和开发
社区管理员
  • VCL组件使用和开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧