全局钩子怎么判断是touch 还是Mouse消息。

huaruoxue 2013-07-12 02:06:03

全局钩子中,SetWindowsHookEx(WH_MOUSE_LL, mouseproc, g_hInstance, 0)

怎么判断。messge是touch 还是Mouse消息。
...全文
609 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
huaruoxue 2013-07-12
  • 打赏
  • 举报
回复
[quote=引用 14 楼 q673371848 的回复:] 如果,截取WM_LBUTTONDOWN,鼠标和触屏的输入无效,但我只想要触屏无效,鼠标可以正常操作。 有办法判断是来自鼠标还是屏幕的输入吗。 ?
huaruoxue 2013-07-12
  • 打赏
  • 举报
回复
只有指定 SetWindowsHookEx(WH_CALLWNDPROCRET, mouseproc, g_hInstance, 0) 才有touch消息。
www_adintr_com 2013-07-12
  • 打赏
  • 举报
回复
引用 10 楼 huaruoxue 的回复:
[quote=引用 8 楼 adlay 的回复:] [quote=引用 7 楼 huaruoxue 的回复:] [quote=引用 6 楼 adlay 的回复:] 也可以使用 GetMessageExtraInfo() 这个函数
我用的是,C++,里面好像没有。 MOUSEEVENTF_FROMTOUCH 0xFF515700 这个常量,自定有效?[/quote] 嗯, 有效[/quote] 试了一下不行,不会等于MOUSEEVENTF_FROMTOUCH 题外话,你的头像咋一看跟我的挺像。[/quote] 哪里像了... 这样你的话你分别记录一下触摸和鼠标消息来的时候, 这个 dwExtraInfo 成员的值吧, 然后在对比看是否可以通过这个值来做区分.
huaruoxue 2013-07-12
  • 打赏
  • 举报
回复
引用 5 楼 u011304970 的回复:
试试下面的代码:

#define MOUSEEVENTF_FROMTOUCH 0xFF515700

// 如果鼠标事件来自于触控
if ((GetMessageExtraInfo() & MOUSEEVENTF_FROMTOUCH) == MOUSEEVENTF_FROMTOUCH)
{
}
我的环境是。win 8 64bit .vs2012 C++
huaruoxue 2013-07-12
  • 打赏
  • 举报
回复
引用 8 楼 adlay 的回复:
[quote=引用 7 楼 huaruoxue 的回复:] [quote=引用 6 楼 adlay 的回复:] 也可以使用 GetMessageExtraInfo() 这个函数
我用的是,C++,里面好像没有。 MOUSEEVENTF_FROMTOUCH 0xFF515700 这个常量,自定有效?[/quote] 嗯, 有效[/quote] 试了一下不行,不会等于MOUSEEVENTF_FROMTOUCH 题外话,你的头像咋一看跟我的挺像。
huaruoxue 2013-07-12
  • 打赏
  • 举报
回复
引用 5 楼 u011304970 的回复:
试试下面的代码:

#define MOUSEEVENTF_FROMTOUCH 0xFF515700

// 如果鼠标事件来自于触控
if ((GetMessageExtraInfo() & MOUSEEVENTF_FROMTOUCH) == MOUSEEVENTF_FROMTOUCH)
{
}
你好,试了一下不行,不会等于MOUSEEVENTF_FROMTOUCH
www_adintr_com 2013-07-12
  • 打赏
  • 举报
回复
引用 7 楼 huaruoxue 的回复:
[quote=引用 6 楼 adlay 的回复:] 也可以使用 GetMessageExtraInfo() 这个函数
我用的是,C++,里面好像没有。 MOUSEEVENTF_FROMTOUCH 0xFF515700 这个常量,自定有效?[/quote] 嗯, 有效
huaruoxue 2013-07-12
  • 打赏
  • 举报
回复
引用 6 楼 adlay 的回复:
也可以使用 GetMessageExtraInfo() 这个函数
我用的是,C++,里面好像没有。 MOUSEEVENTF_FROMTOUCH 0xFF515700 这个常量,自定有效?
www_adintr_com 2013-07-12
  • 打赏
  • 举报
回复
也可以使用 GetMessageExtraInfo() 这个函数
Cynhard85 2013-07-12
  • 打赏
  • 举报
回复
试试下面的代码:

#define MOUSEEVENTF_FROMTOUCH 0xFF515700

// 如果鼠标事件来自于触控
if ((GetMessageExtraInfo() & MOUSEEVENTF_FROMTOUCH) == MOUSEEVENTF_FROMTOUCH)
{
}
www_adintr_com 2013-07-12
  • 打赏
  • 举报
回复
把回调函数参数中的 LPARAM lParam 参数转换成 MSLLHOOKSTRUCT 结构的指针, 然后查看这个结构中的 dwExtraInfo, 用 if(dwExteraInfo & MOUSEEVENTF_FROMTOUCH) 来判断是否是触摸屏触发的.
huaruoxue 2013-07-12
  • 打赏
  • 举报
回复
引用 楼主 huaruoxue 的回复:
全局钩子中,SetWindowsHookEx(WH_MOUSE_LL, mouseproc, g_hInstance, 0) 怎么判断。messge是touch 还是Mouse消息。
如果,截取WM_LBUTTONDOWN,鼠标和触屏的输入无效,但我只想要触屏无效,鼠标可以正常操作。 有办法判断是来自鼠标还是屏幕的输入吗。
huaruoxue 2013-07-12
  • 打赏
  • 举报
回复
引用 1 楼 adlay 的回复:
touch? 触摸屏的?
是的。
www_adintr_com 2013-07-12
  • 打赏
  • 举报
回复
touch? 触摸屏的?

3,882

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧