使用 Windows 的原始鼠标输入
Raw mouse input with Windows
阅读这篇文章"利用高清鼠标移动" - http://msdn.microsoft.com/en-us/library/windows/desktop/ee418864(v=vs.100(.aspx,我推测应该使用原始输入来更精确地读取输入设备。
文章指出,WM_MOUSEMOVE的主要缺点是它仅限于屏幕分辨率。
在仔细检查 RAWMOUSE 结构后,我发现 lLastX 和 lLastY 是长值,您可以通过它们获得增量。
对我来说,它看起来像WM_MOUSEMOVE和WM_INPUT是一样的,除了WM_INPUT你没有应用加速度(指针弹道学(。
WM_MOUSEMOVE和WM_INPUT都受限于屏幕分辨率吗?
如果是这样,使用WM_INPUT有什么好处?
原始分辨率为您提供鼠标的逻辑坐标。
也就是说,您会看到鼠标的实际移动。
Windows 将使用鼠标速度和加速度(弹道(设置来更新光标位置。因为两者当然没有联系 - 必须解释鼠标的明显移动以生成光标移动,否则如何支持多个鼠标?
如果您希望控制指针,据我所知,没有理由复制Windows鼠标弹道计算。就让窗户来做吧。因此,为了控制指针,您应该只使用 WM_MOUSEMOVE。也就是说,除非您希望在应用程序中禁用鼠标加速设置。
但是,如果您想控制玩家的 POV(视角(,或使用鼠标控制游戏中的对象,例如宇宙飞船飞行轭,那么 RAWMOUSE 数据可以让您最好地访问鼠标的移动,您可以实现自己的算法将其转换为飞行轭/POV 运动。
使用它的主要好处和原因是,使用 rawInput,您可以使用两个或更多鼠标。目前,我编写了小型游戏原型,旨在由两个玩家使用两个鼠标/鼠标玩 - 它更复杂,但它有效并且还不错,因为我确实需要链接外部库。
- opengl中鼠标输入背后的数学和偏航/俯仰值
- SDL C++鼠标输入处理切换效果
- GetAsyncKeyState 未检测到鼠标输入
- 鼠标输入和键输入有什么区别(在前台获取窗口)
- 跟踪鼠标输入事件
- 如何使用Win32 API阻止来自透明窗口的鼠标输入?
- QT4.8嵌入.使用QCursor :: SetPos()调整鼠标输入会导致一个抽搐的光标
- C++ WinAPI - 草率的鼠标输入
- 打开GL/Glut绘制的线未从鼠标输入显示
- Windows C - 需要想法 - 在同一应用/窗口中将鼠标输入和原始输入组合在一起
- C++编译器,形状,如何在鼠标输入上更改颜色
- 鼠标输入:MOUSEEVENTF_MOVE移动不根据dx,dy
- SDL - 鼠标输入
- 发送输入发送鼠标输入和键盘输入
- 使用 Windows 的原始鼠标输入
- 如何将键盘和鼠标输入发送到不是Windows7上活动窗口的游戏
- 原始鼠标输入的解释
- c++键盘/鼠标输入
- 如何在GTK中获得键盘和鼠标输入
- c++ Directx鼠标输入焦点丢失后行为怪异