首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何区分触摸板和鼠标设备生成的WM_MOUSE***消息?

如何区分触摸板和鼠标设备生成的WM_MOUSE***消息?
EN

Stack Overflow用户
提问于 2020-09-12 01:18:36
回答 1查看 171关注 0票数 2

我试过这里提到的GetMessageExtraInfo()Detect if WM_MOUSEMOVE is caused by touch/pen

但是它不起作用--对于触摸板产生的所有鼠标事件,GetMessageExtraInfo()都会返回0

已在集成触摸板的笔记本电脑和连接了外部触摸板的台式机上试用。

我还尝试将WM_TOUCH事件与RegisterTouchWindow()WM_GESTURE一起使用,但它们也不起作用-我在窗口上既没有收到WM_TOUCH事件,也没有收到WM_GESTURE事件。

本质上,我需要的是检测手指何时打开和关闭触摸板。但由于未知的原因,WM_TOUCH或WM_GESTURE似乎只适用于触摸屏,而不适用于触摸板。

有什么建议吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-12 02:07:45

如果您需要能够区分输入源,请考虑使用WM_POINTER*消息而不是较旧的WM_MOUSE*消息。请注意,这将需要调用EnableMouseInPointer()来接收有关系统认为是鼠标的设备的消息(对于许多基本的触摸板来说都是如此)。

WM_MOUSE*消息不同,wParam会告诉您某些虚拟按键的状态,而WM_POINTER消息包含足够的信息,以便能够跟踪输入源。这有点复杂,因为指针消息不会根据按下的按钮提供单独的消息,但该信息至少仍然可用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63851594

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档