Windows平板 区分当前是鼠标点击还是触摸

开发的程序原本的功能是支持左键单击,右键单击,鼠标悬浮功能,但是测试发现在平板上长按触摸时,会先响应右键消息,然后释放后会再触发鼠标悬浮消息,相当于一次操作触发了两个功能,用户体验也不好。

原本是想直接判断当前是否支持触摸,支持触摸就不支持悬浮功能,但是现在各种高清和办公电脑都支持触摸,直接这样处理误伤太大,最好是鼠标点击时保持原有逻辑,触摸时不响应鼠标悬浮消息


查询msdn,可知:

1.对于传统程序,对应触摸消息为WM_GESTURE,这个消息为了兼容,默认会转成传统的鼠标消息,如下:


可知,触摸长按对应传统右键消息

2.如果窗口RegisterTouchWindow注册为Touch窗口,触摸对应消息为WM_TOUCH,此时不会默认转成鼠标消息,鼠标点击和触摸响应自己分别写不同响应函数


因此,为了解决这个问题,有如下两种办法:

1.在鼠标消息中判断当前鼠标消息是从鼠标点击来的还是触摸来的

2.分别响应鼠标消息和触摸消息


第二种很明确,但是会增加明显的工作量,偷懒想用第一种,正好查到msdn文档中真的提供了区分消息来源的方法,完事大吉~

如下,注意此函数必须在鼠标响应函数中调用才有效,SendMessage/PostMessage转发后的消息中是无法判断的:

//功能:区分当前事件是由鼠标还是触摸产生的
//参考https://msdn.microsoft.com/en-us/library/windows/desktop/ms703320
#define MI_WP_SIGNATURE  0xFF515700
#define SIGNATURE_MASK	 0xFFFFFF00
inline bool IsTouchEvent() 
{
	LPARAM dw = GetMessageExtraInfo();
	return (dw & SIGNATURE_MASK) == MI_WP_SIGNATURE;
}

测试程序 下载链接,DebugView可实时查看输出

Window 触摸参考MSDN链接

原创,转载请注明来自http://blog.csdn.net/wenzhou1219

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Windows平板是一种运行Windows操作系统的平板电脑设备,它配备了触摸屏,可以使用手指或触控笔进行操作。在Windows平板触摸文件是指通过触摸屏对文件进行操作的过程。 首先,我们可以通过触摸屏轻触文件夹图标来打开文件夹,并浏览其中的文件。只需用手指轻触文件夹图标,即可进入文件夹并查看其内容。 其次,通过在文件上使用手指滑动操作,我们可以选择文件或者进行多选。我们可以在文件名上滑动手指,将文件选中或取消选择。通过这种方式,我们可以方便地对多个文件进行操作,如复制、移动或删除。 另外,我们还可以使用手指在文件上进行长按操作。长按文件会弹出一个操作菜单,其中包含了各种对文件进行操作的选项,比如重命名、分享、压缩等。通过长按文件,我们可以快速地获取对文件的各种操作选项。 当我们需要对文件进行编辑时,我们可以使用触控笔来进行精确操作。触控笔在Windows平板上是一种非常便捷的输入工具,可以让我们更加准确地选择、编辑和操作文件。触摸屏与触控笔的结合,使得在Windows平板触摸文件变得更加灵活和便利。 总而言之,在Windows平板触摸文件是通过使用触摸屏和触控笔来进行文件操作的过程。通过简单的手势操作,我们可以轻松地打开文件、选择文件、进行多选操作以及进行文件编辑,使得在Windows平板上处理文件变得更加高效和便捷。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值