ON_WM_MOUSEWHEEL无响应
发布时间:2020-12-14 05:56:56 所属栏目:Windows 来源:网络整理
导读:问题: ON_WM_MOUSEWHEEL 消息无响应 转动滚轮会导致Windows在有输入焦点的窗口(不是鼠标光标下面的窗口)产生WM_MOUSEWHEEL消息。所以当子窗口没有焦点的时候将收不到消息WM_MOUSEWHEEL。但是,当我们把鼠标移到某个子窗口的时候,并转动滚轮,应该是希望
问题:ON_WM_MOUSEWHEEL消息无响应转动滚轮会导致Windows在有输入焦点的窗口(不是鼠标光标下面的窗口)产生WM_MOUSEWHEEL消息。所以当子窗口没有焦点的时候将收不到消息WM_MOUSEWHEEL。但是,当我们把鼠标移到某个子窗口的时候,并转动滚轮,应该是希望这个子窗口响应滚轮,而不管它是否有焦点。最直接的解决方法是调用SetFoucs函数把这个子窗口设为有焦点。常规来说,滚轮是改变滚动条位置的,而单击鼠标左键才是用来改变焦点的。滚动滚轮的时候焦点改变并不是我们所希望的。那我们要怎么又使鼠标下面的窗口响应滚轮, 而又不改变焦点呢? 这就需要重载?PreTranslateMessage 来改变响应WM_MOUSEWHEEL消息的窗口。 BOOL CXXXApp::PreTranslateMessage(MSG* pMsg) { if (pMsg->message == WM_MOUSEHWHEEL || pMsg->message == WM_MOUSEWHEEL) { POINT pos; GetCursorPos (&pos); pMsg->hwnd = WindowFromPoint (pos); } return CWinAppEx::PreTranslateMessage(pMsg); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 为什么R data.table不支持Windows上的非ASCII键
- 如何使用Windows身份验证对中间层上的用户进行身份验证
- windows-server-2008 – Windows Server上的内存使用情况
- Windows10安装node.js
- Windows CPU Scheduler – 内核时间非常长
- windows-server-2008 – 我如何创建灵活的EC2 Windows 2008
- windows平台下获取USB设备“身份证”
- Windows命令判断.dll文件是32位还是64位?
- 如何在Windows批处理脚本或Perl中将文件移动到回收站?
- 从Windows应用商店应用中删除超链接下划线