部分消息不能传递的问题

ivy1023 2007-10-21 09:25:11
我在一个对话资源模板框上有一个静态文本控件,在该对话框类中,我对该静态文本控件创建了一个控制变量,其类型是自己派生的CStatic类,我想在这个派生类中对鼠标滑轮滚动消息进行处理,也就是说我想对这个静态文本控件的鼠标滑轮滚动消息进行处理,发现这消息根本就传不到这个控件上,但是我用spy查找发现,部分鼠标消息,比如鼠标move,点击的消息都传到该静态文本控件上了,而WM_MOUSE_WHEEL根本就没有收到。

我想问,windows机制本来就是这样的吗?有没有办法让该静态文本控件收到这条消息?
提前感谢!
...全文
104 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ivy1023 2007-10-22
  • 打赏
  • 举报
回复
现在我能解决这个问题了,但是感觉比较绕.

这条消息传到对话框窗口中了,只能在对话框窗口中处理,要是能在子窗口中处理更好.
ivy1023 2007-10-22
  • 打赏
  • 举报
回复
能通过向导映射wheel消息.
所以CWnd的派生类都可以影射这条消息.
凤矶 2007-10-22
  • 打赏
  • 举报
回复
看看父窗口有没有,没有就查一下GetSystemMetrics(SM_MOUSEWHEELPRESENT);
drowdrow 2007-10-22
  • 打赏
  • 举报
回复
静态控件有wheel消息吗?
ivy1023 2007-10-22
  • 打赏
  • 举报
回复
"应该是没输入焦点的原因, 自己可以在父窗体转发过去", 不是这样的,部分消息是可以收到的,比如鼠标移动,鼠标左键双击,单击, 只是鼠标滑轮滚动收不到.
我后来查了,该消息传到对话框中去了.
JonathanS666 2007-10-21
  • 打赏
  • 举报
回复
在其父窗体中的PretranslateMsg函数中调用static类的相应处理函数。认为的先处理你的想要的消息,因为父窗口可以接受到消息。
Yofoo 2007-10-21
  • 打赏
  • 举报
回复
应该是没输入焦点的原因, 自己可以在父窗体转发过去

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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