http://blog.youkuaiyun.com/vanship/article/details/4119246
鼠标滚轮消息似乎只会发给当前获得焦点的窗口,所以当子窗体没有焦点时是收不到滚轮消息的,收到消息的可能是父窗口。
解决:添加鼠标单击相应函数,在响应函数中添加SetFoucs();一句,这样强制设置焦点给子窗口,然后再滚动鼠标滚轮,子窗体就能收到滚轮消息了。
问题继续,当子窗口上有其他可以获得焦点的控件时,比如下拉列表,这时在窗口函数中执行SetFoucs();焦点会自动跑到那个控件上去,子窗口同样收不到滚轮消息。
解决:在执行SetFoucs();语句前先Disable子窗体上的所有控件,然后执行SetFoucs();,再Enanle所有控件,这时焦点才会在子窗口上。
本文介绍了解决子窗口无法接收到鼠标滚轮消息的问题。通常情况下,滚轮消息会被具有焦点的窗口接收,因此文章提供了两种解决方案:一是通过SetFocus()方法强制设置焦点;二是先禁用子窗口中的所有控件,再设置焦点,最后重新启用控件。
679

被折叠的 条评论
为什么被折叠?



