我应该使用哪一个?我只使用 Windows 8.x,所以我不关心 WM_POINTER 不向后兼容 Windows 7 等的事实。我也不关心手势;仅关于原始接触。WM_POINTER 唯一明显的优势似乎是它统一了触摸和鼠标输入(但是使用 WM_TOUCH 很容易解决这个问题,因为可以使用 GetMessageExtraInfo() 检查鼠标事件)。易用性也不是问题;我已经在使用 WM_TOUCH,我只是想知道是否应该切换到 WM_POINTER。我最关心的是延迟和效率(与游戏相关的应用程序)。我不知道 WM_POINTER 是否是 WM_TOUCH 的包装器,它有额外的开销。任何意见?
问问题
3770 次
2 回答
5
WM_TOUCH
已过时。WM_POINTER
独占使用。(WM_TOUCH
实际上是一个包装器WM_POINTER
。)
GetMessageExtraInfo
也是出了名的脆弱。您必须在调用 GetMessage 后立即调用它,否则您将面临中间函数调用进行 COM 调用或执行导致调用 GetMessage 的其他操作的风险。
于 2014-05-21T22:29:13.137 回答
0
我知道这是对一个非常古老的问题的回应,但其他人可能会发现它很有用:我想要 WM_TOUCH 提供的触摸屏 X、Y 坐标与屏幕坐标的简化关联,但需要触摸数字化仪的本机精度,而不是屏幕坐标非常类似于数字化仪数据(WM_TOUCH 提供的所有数据)。我需要这个完整的分辨率数据来测试触摸屏的规格。您可以使用原始输入获取低级坐标,但注册原始输入会停止 WM_TOUCH 消息。因此,如上所述,我尝试使用 WM_POINTERxxxxx 消息,发现注册原始 HID 数据不会禁用 WM_POINTER 消息。问题解决了。
于 2022-02-25T03:34:47.030 回答