lin*_*s77 5 c++ windows mouse winapi
阅读这篇文章"利用高清鼠标移动" - http://msdn.microsoft.com/en-us/library/windows/desktop/ee418864(v=vs.100).aspx,我猜想一个应该使用原始输入从输入设备获得更精确的读数.
文章指出WM_MOUSEMOVE的主要缺点是它仅限于屏幕分辨率.
仔细检查RAWMOUSE结构后,我看到lLastX和lLastY是长值,你可以通过它们得到delta.
对我来说,看起来WM_MOUSEMOVE和WM_INPUT是相同的,除了使用WM_INPUT你没有应用加速度(指针弹道).
WM_MOUSEMOVE和WM_INPUT是否仅限于屏幕分辨率?
如果是这样,使用WM_INPUT有什么好处?
Ben*_*Ben 10
RAWMOUSE根据鼠标的原始分辨率为您提供鼠标的逻辑坐标.
也就是说,您可以看到鼠标的实际移动.
Windows将使用鼠标速度和加速度(弹道)设置来更新光标位置.因为当然两者没有联系 - 必须解释鼠标的明显移动以产生光标移动,否则如何支持多个鼠标?
如果你想控制指针,据我所知,没有理由复制Windows鼠标弹道计算.只是让窗户做到这一点.因此,为了控制指针,您应该只使用WM_MOUSEMOVE.也就是说,除非您希望在应用程序中禁用鼠标加速设置.
但是,如果你想控制玩家的POV(观点),或者用鼠标来控制游戏中的物体,如飞船飞行轭,那么RAWMOUSE数据可以让你最好地获得鼠标的移动,您可以实现自己的算法将其转换为飞行轭/ POV运动.
| 归档时间: |
|
| 查看次数: |
7758 次 |
| 最近记录: |