gpt4 book ai didi

c++ - Windows 的原始鼠标输入

转载 作者:可可西里 更新时间:2023-11-01 13:51:30 26 4
gpt4 key购买 nike

阅读这篇文章“利用高清鼠标移动”- 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 有什么好处?

最佳答案

RAWMOUSE 根据鼠标的原始分辨率为您提供鼠标的逻辑坐标。

也就是说,您看到了鼠标的实际移动。

Windows 将使用鼠标速度和加速度(弹道)设置来更新光标位置。因为这两者当然没有关联 - 鼠标的明显移动必须解释为生成光标移动,否则如何支持多个鼠标?

如果你想控制指针,据我所知,没有理由重复 Windows 鼠标弹道计算。就让 window 来做吧。因此,为了控制指针,您应该只使用 WM_MOUSEMOVE。也就是说,除非您希望在您的应用程序中禁用鼠标加速设置。

但是,如果您想控制玩家的 POV(视角),或使用鼠标控制游戏中的物体,例如宇宙飞船飞行操纵杆,那么 RAWMOUSE 数据可为您提供最佳的 Action 访问权限鼠标,您可以实现自己的算法将其转换为飞行操纵杆/POV 运动。

关于c++ - Windows 的原始鼠标输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10462198/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com