MFC中子窗口鼠标滚轮无法响应

http://blog.csdn.net/zgjorson/article/details/9252995

 

鼠标滚轮消息似乎只会发给当前获得焦点的窗口,所以当子窗体没有焦点时是收不到滚轮消息的,收到消息的可能是父窗口。

解决:添加鼠标单击相应函数,在响应函数中添加SetFoucs();一句,这样强制设置焦点给子窗口,然后再滚动鼠标滚轮,子窗体就能收到滚轮消息了。

 

问题继续,当子窗口上有其他可以获得焦点的控件时,比如下拉列表,这时在窗口函数中执行SetFoucs();焦点会自动跑到那个控件上去,子窗口同样收不到滚轮消息。

解决:在执行SetFoucs();语句前先Disable子窗体上的所有控件,然后执行SetFoucs();,再Enanle所有控件,这时焦点才会在子窗口上。

posted @ 2017-03-25 21:01  $JackChen  阅读(1051)  评论(0编辑  收藏  举报