【发布时间】:2018-12-19 05:48:53
【问题描述】:
让我看看我是否可以描述我正在尝试做的事情。目前,您的鼠标仅限于在屏幕尺寸范围内移动。我想删除此限制并允许鼠标继续超出边界(理论上是无限的)并让它控制我正在构建的程序中的各个方面,但是当鼠标移回屏幕尺寸时将鼠标返回屏幕.所以我的想法是,一旦鼠标到达并突破屏幕边缘,我的程序将开始禁止发送鼠标消息(以及键盘/剪贴板消息),但随后继续监视原始鼠标(和键盘/剪贴板) delta 从该点开始变化,直到它回到屏幕范围内。
我已经有一个使用 SetWindowsHookEx() 并返回低级鼠标事件(例如 WM_MOUSEMOVE)的工作示例,但是,返回的结构 (MSLLHOOKSTRUCT) 似乎不够低级寻找此示例返回屏幕 X 和 Y 坐标,但我需要更接近 delta 而不是“渲染”坐标。从文档来看,我似乎需要 RAWMOUSE 数据。有很多关于 RAWMOUSE 数据类型的文档,但没有太多关于如何挂钩来获取该类型消息的文档。
如前所述,我还希望监视键盘和剪贴板类型的事件(当鼠标离开屏幕时抑制,控制我的程序),所以如果有更好的方法可以让这些事件正确挂钩进入监视/抑制,但听起来我不一定需要键盘和剪贴板事件成为原始数据,因为键盘和剪贴板没有像鼠标那样可以突破的界限。但我认为键盘/剪贴板抑制超出了我当前问题的范围,但如果解决方案恰好也解决了该问题,则很有帮助。
【问题讨论】:
标签: winapi mouseevent mouselistener