WinCE识别触摸笔的右键点击
WinCE系统中,触摸笔长按事件相当于是鼠标右键弹出上下文菜单,在网上大约能找到两段相似的代码,一是用timer事件实现,另一个是捕获WM_LBUTTON_DOWN消息,再调用SHRecognizeGesture实现,大致代码如下:
在桌面上按住左键不放 弹出右键菜单。 case WM_LBUTTONDOWN:
{
SHRGINFO shrg;
HMENU hmenu;
shrg.cbSize = sizeof(shrg);
shrg.hwndClient = hWnd;
shrg.ptDown.x = LOWORD(lParam);
shrg.ptDown.y = HIWORD(lParam);
shrg.dwFlags = SHRG_RETURNCMD | SHRG_NOANIMATION;
if (SHRecognizeGesture(&shrg) == GN_CONTEXTMENU) {
hmenu = GetSubMenu(g_hMainMenu, 0);
TrackPopupMenuEx(hmenu,
TPM_LEFTALIGN,
LOWORD(lParam),
HIWORD(lParam),
hWnd,
NULL);
}
break;
}
说明:
OS Versions: Windows CE .NET 4.2 and later.
Header: Aygshell.h.
Link Library: Aygshell.lib.
经过试验,两种方式都工作的不好,以上这种方式偶尔能弹出一下,多数时候并不能正常工作。经验长按并截获消息发现,长按时会发送一个WM_CONTEXTMENU消息,这就是长按后发送的消息。所以,处理方法如下:例如要在CListCtrl列表上选中一行,并长按触摸笔并弹出上下文菜单,重载窗口的PreTranslateMessage函数,将收到的上下文菜单发到自定消息处理函数处理。
//定议消息
#define ID_MSG_CONTEXT_MENU WM_USER + 101
//消息处理函数
LRESULT MyDialog::OnCListCtrlContextMenu(WPARAM wParam, LPARAM lParam)
//消息映射
BEGIN_MESSAGE_MAP(MyDialog, CDialog)
ON_MESSAGE(ID_MSG_CONTEXT_MENU, OnCListCtrlContextMenu)
END_MESSAGE_MAP()
重载PreTranslateMessage函数
BOOL MyDialog::PreTranslateMessage(MSG* pMsg)
{
//处理鼠标长按
if(pMsg->message == WM_CONTEXTMENU)
{
CWnd* pCur = WindowFromPoint(pMsg->pt);
if (pCur == &m_listView)
{
PostMessage(ID_MSG_CONTEXT_MENU,NULL,NULL);
}
}
return CDialog::PreTranslateMessage(pMsg);
}
//弹出上下文菜单
LRESULT MyDialog::OnCListCtrlContextMenu(WPARAM wParam, LPARAM lParam)
{
POSITION pos = m_listView.GetFirstSelectedItemPosition();
if (pos != NULL)
{
int item = m_ listView.GetNextSelectedItem(pos);
POINT point;
GetCursorPos(&point);
//自定义上下文化菜单
CMenuActive Menu(point, this);
Menu.InitMenu(MENU_ADD|MENU_EDIT|MENU_DELETE);
}
return 0;
}
这样就能完美的实现长按时弹出上下文菜单。
WinCE识别触摸笔的右键点击相关推荐
- Win10系统的SurfacePro4的触摸笔如何使用
初次使用需要配对,微软的触摸笔是蓝牙配对的,打开平板的蓝牙,长按触摸笔后面的按钮,触摸笔会闪烁小灯,平板会提示配对准备已就绪 点击配对之后,提示已连接 可以按下触摸笔后面的按钮,一键打开OneNote ...
- mac安装win10后触摸板没有右键功能键的添加技巧
一些mac用户也会在自己的笔记本电脑上安装windows10系统. 但最近有部分用户发现,安装上win10正式版后,发现无论点击触摸板哪个位置,都只有左键,根本无法右键的问题, 针对此问题,现笔者分享 ...
- 修改注册表校正触摸笔
修改注册表校正触摸笔 1. 在开发板上点击"控制面板à笔针à校准选项à再校准". 2. 在开发板上找到注册表[HKEY_LOCAL_MACHINE\HARDWARE\DEVI ...
- 【错误记录】IntelliJ IDEA 中右键点击源码目录选择 New 选项 没有创建 Java Class 选项 ( 将对应的源码目录标记为 Sources 选项 )
文章目录 一.报错信息 二.解决方案 一.报错信息 右键点击源码目录 , 选择 New 选项创建源码 , 没有任何源码创建选项 ; 二.解决方案 右键点击源码根目录 , 在弹出的菜单中选择 " ...
- win8音频服务器未响应,大神为你详解win8系统右键点击文件提示“未响应”的解决教程...
近日有使用电脑的用户跟小编反映说win8系统右键点击文件提示"未响应"的问题,据小编了解,不是所有的用户都会解决win8系统右键点击文件提示"未响应"的问题,针 ...
- 在电脑桌面 右键点击 计算机,在桌面上右键点击电脑
win10怎么修改系统日期时间?电脑发展到今天,时间的显示已经非常智能化,不仅仅依赖于主板上的BIOS时间,所以即便BIOS时间不准,或电池不足,都不一定会影响到系统中时间的显示,当然也不排除设置不对 ...
- QT右键点击添加库不响应的解决办法
问题描述 QT在pro右键点击添加库不响应 解决方案 双击打开pro文件 在pro文件界面里单击鼠标右键,并选择添加库. 解决问题
- 设置网页右键点击,并阻止右键点击默认事件
设置网页右键点击,并阻止右键点击默认事件 //为当前文档添加鼠标右击事件,防止默认的右击菜单弹出 document.oncontextmenu=Youji; function Youji(){aler ...
- html点击控制盒子左右移动,JS实现鼠标拖拽盒子移动及右键点击盒子消失效果示例...
JS实现鼠标拖拽盒子移动及右键点击盒子消失效果示例 发布时间:2020-10-04 12:47:25 来源:脚本之家 阅读:121 作者:s_psycho 本文实例讲述了JS实现鼠标拖拽盒子移动及右键 ...
最新文章
- Windows Pe 第三章 PE头文件(上)
- 能用条件注释改善的IE兼容问题
- 1176: C语言实验题――数组逆序
- JMS学习之ActiveMQ-简单使用
- Flutter动画SizeTransition使用解析
- 计算机音乐 带你去旅行,带你去旅行(全乐器)
- optparse的模块编译参数使用
- MATLAB gui 绘图设置
- 被黑心商家坑了N次,探究抽奖背后的秘密 —— H5转盘小游戏完整实现(源码直接拿走)
- 4412 使用小度wifi
- elasticsearch7.8索引生命周期报错:index.lifecycle.rollover_alias does not point to index
- LeetCode 69. x 的平方根
- C++程序设计基础(揣锦华版)课后习题答案-第一章:程序设计基础知识
- windows计算机查看里设置,windows10电脑配置怎么查看
- 2018湖南省第14届大学生计算机程序设计竞赛---卖萌表情
- c语言rewind函数作用,C 文件 rewind() 函数
- Java初级面试笔记
- 天下文章一大抄 mysql远程连接
- 【Python】实现一个简单的区块链系统
- 概率小数2013年阿里巴巴暑期实习招聘笔试题目(不完整,笔试时间:2013.5.5)
热门文章
- php返回302,php使用curl请求返回302(30x)
- 梅森素数(C语言求解)
- 计算机启动黑屏不显示桌面图标,win7系统电脑启动开机黑屏不显示只有鼠标图标的解决方法...
- 中国大学计算机专业排名教育部,2017年中国的大学计算机专业排名
- 阿里架构师钟华,揭秘《阿里中台战略思想与实战》,ppt分享!
- react实现个人博客网站
- superclass
- vrml java_java如何在vrml里弹出窗口
- 强网杯2021 pwn部分wp
- amber教程5.3:带非标准残基的绿色荧光蛋白的MD