【EasyUse】关于键盘加速键的几点思考
因为EasyUse程序要用到键盘加速,中间遇到了一些难题。汇总以便以后使用。
1、该在哪个地方截取消息(?)
关于这问题,认识还不够深刻。有一点可以确定,你在程序运行的CXXApp和CXXDlg的PreTranslateMessage()中截取消息函数肯定是不一样的。
一个是程序运行全过程都可以出发键盘操作的。
关于在对话框中出发消息,是在PreTranslateMessage()还是在OnKeyDown()中触发,还暂时没搞清楚。留以后搞清楚了去写。我是在PreTranslateMessage()中出发也没有成功
2、用什么判断触发了键盘操作。
1.可以检查MSG *pMsg变量的message变量判断消息的类型。当为WM_KEYDOWN时表示,有键被按下pMsg->wParam说明是什么键被按下。
具体的键的表示如下:
符号形式 十六进制形式 说明
VK_LBUTTON 01 鼠标左键
VK_RBUTTON 02 鼠标右键
VK_CANCEL 03 Control-break 过程
VK_MBUTTON 04 鼠标中键
VK_BACK 08 BACKSPACE 键
VK_TAB 09 TAB 键
VK_CLEAR 0C CLEAR 键
VK_RETURN 0D ENTER 键
VK_SHIFT 10 SHIFT 键
VK_CONTROL 11 CTRL 键
VK_MENU 12 ALT 键
VK_PAUSE 13 PAUSE 键
VK_CAPITAL 14 CAPS LOCK 键
VK_ESCAPE 1B ESC 键
VK_SPACE 20 SPACEBAR
VK_PRIOR 21 PAGE UP 键
VK_NEXT 22 PAGE DOWN 键
VK_END 23 END 键
VK_HOME 24 HOME 键
VK_LEFT 25 LEFT ARROW 键
VK_UP 26 UP ARROW 键
VK_RIGHT 27 RIGHT ARROW 键
VK_DOWN 28 DOWN ARROW 键
VK_SELECT 29 SELECT 键
VK_EXECUTE 2B EXECUTE 键
VK_SNAPSHOT 2C PRINT SCREEN键(用于Windows 3.0及以后版本)
VK_INSERT 2D INS 键
VK_DELETE 2E DEL 键
VK_HELP 2F HELP键
VK_LWIN 5B Left Windows 键 (Microsoft自然键盘)
VK_RWIN 5C Right Windows 键 (Microsoft自然键盘)
VK_APPS 5D Applications 键 (Microsoft自然键盘)
VK_NUMPAD0 60 数字小键盘上的 0 键
VK_NUMPAD1 61 数字小键盘上的 1 键
VK_NUMPAD2 62 数字小键盘上的 2 键
VK_NUMPAD3 63 数字小键盘上的 3 键
VK_NUMPAD4 64 数字小键盘上的 4 键
VK_NUMPAD5 65 数字小键盘上的 5 键
VK_NUMPAD6 66 数字小键盘上的 6 键
VK_NUMPAD7 67 数字小键盘上的 7 键
VK_NUMPAD8 68 数字小键盘上的 8 键
VK_NUMPAD9 69 数字小键盘上的 9 键
VK_MULTIPLY 6A Multiply 键
VK_ADD 6B Add键
VK_SEPARATOR 6C Separator 键
VK_SUBTRACT 6D Subtract 键
VK_DECIMAL 6E Decimal 键
VK_DIVIDE 6F Divide 键
VK_F1 70 F1 键
VK_F2 71 F2 键
VK_F3 72 F3 键
VK_F4 73 F4 键
VK_F5 74 F5 键
VK_F6 75 F6 键
VK_F7 76 F7 键
VK_F8 77 F8 键
VK_F9 78 F9 键
VK_F10 79 F10 键
VK_F11 7A F11 键
VK_F12 7B F12 键
VK_F13 7C F13 键
VK_F14 7D F14 键
VK_F15 7 E F15 键
VK_F16 7F F16 键
VK_F17 80H F17 键
VK_F18 81H F18 键
VK_F19 82H F19 键
VK_F20 83H F20 键
VK_F21 84H F21 键
VK_F22 85H F22 键
VK_F23 86H F23 键
VK_F24 87H F24 键
VK_NUMLOCK 90 NUM LOCK 键
VK_SCROLL 91 SCROLL LOCK 键
VK_ATTN F6 Attn 键
VK_CRSEL F7 CrSel 键
VK_EXSEL F8 ExSel 键
VK_EREOF F9 Erase EOF 键
VK_PLAY FA Play 键
VK_ZOOM FB Zoom 键
VK_OEM_CLEAR FE Clear 键
代码如下:
if (pMsg->message==WM_KEYDOWN)
{
switch(pMsg->wParam)
{
case 'VK_CONTROL':
break;
}
}
3、如何触发使用组合键?
使用SHORT GetKeyState(int nVkey);SHORT GetAsyncKeyState(int vKey);两个函数判断键盘某个键是不是按下。
通过GetKeyState()返回的SHOTR类型值判断,按键的方式。SHORT为16位的整数,例如SHORT keyState=GetKeyState(VK_NUMLOCK);
keyState&x00FF
【EasyUse】关于键盘加速键的几点思考相关推荐
- mfc使用键盘加速键
首先创建一个菜单,ID分别为IDM_FILE_NEW,IDM_FILE_OPEN,IDM_FILE_CLOSE. 分别对菜单各项进行响应. 在OnInitDialog()中,添加标题栏菜单: HMEN ...
- 10.3 键盘加速键
摘录于<Windows程序(第5版,珍藏版).CHarles.Petzold 著>P373 键盘加速键是可以生成 WM_COMMAND(或者有时是 WM_SYSCOMMAND)消息的组合键 ...
- 非框架窗口键盘加速键的使用
在设计应用程序菜单时,可以选择使用键盘加速键给任意或者全部菜单项分配快捷键,加速键也会引发WM_COMMAND消息. 第一步,是要创建一个加速键表(特殊的资源).具体方法是,在资源列表视图里面,添加加 ...
- 技法:对你的应用添加键盘加速键
对IsDialogMessage的误解 有一个API函数可能经常容易造成误解,它就是IsDialogMessage.IsDialogMessage将会判断一个消息是否是针对指定对话框的消息,如果是的话 ...
- 关于VS2010中键盘加速键无效的问题
/ // // Accelerator //IDR_ACCELERATOR ACCELERATORS BEGINVK_F2, IDM_NEW, VIRTKEY, NOINVERT END 在资源中添加 ...
- 加载自己的键盘加速键
// TODO: 在此添加专用代码和/或调用基类 //1.加载加速键表 HINSTANCE hInst=AfxGetResourceHandle(); LPCTSTR lpID=MAKEINTRESO ...
- Visual C++——加速键
基本概念 加速键:用户在键盘上按下了定义的加速键也将产生相应的命令消息. 什么是键盘加速键?加速键是产生WM_COMMAND消息(有些情况下是WM_SYSCOMMAND)的键组合.许多时候,程序使用加 ...
- Windows 编程 键盘
键盘对于大家来说可能再也熟悉不过了,它和鼠标是现在最常用的电脑输入设备.虽然在现在的图形界面操作系统下使用鼠标比使用键盘更方便.更广泛,但是鼠标还是一时半会儿取代不了它的老前辈--键盘的地位,尤其是在 ...
- 小学计算机键盘的初步认识教案,小学信息技术西交大三(上)第六课:初步认识键盘(教案...
<小学信息技术西交大三(上)第六课:初步认识键盘(教案>由会员分享,可在线阅读,更多相关<小学信息技术西交大三(上)第六课:初步认识键盘(教案(2页珍藏版)>请在人人文库网上搜 ...
最新文章
- 记一次Spring boot 和Vue的前后端分离的入门培训
- h5页面提示只能在微信浏览器中打开_电子问卷h5怎么做?
- iOS:后台定位并实时向服务器发送位置
- CSDN总结的面试中的十大可视化工具
- cache buster issue application index and duplicate .library file
- QT-在子控件上绘图的两种方式
- 实现 VUE 中 MVVM - step10 - Computed
- dns服务 很多问题,后续再研究
- MacOS中安装Consul(启动及关闭)
- mysql column legnth too big for_Column length too big for column 'Flist' (max = 21845);
- linux sd卡空间,充分利用树莓派中的SD卡空间
- ES6新语法之let关键字;有别于传统关键字var的使用
- html中显示框框中对勾,如何打出方框里有对勾
- 函数名作为字符串输出(Function Names as Strings)
- 网络协议 11 - Socket 编程(下)
- 第一章 编程基础_ASCII 编码和GBK编码
- java实习面试复盘(22年广州番禺)
- 静态路由设置实例解析
- 单机版Docker Swarm安装及试用
- 一步步实现一个城市选择器
热门文章
- 深蓝积分,来自深蓝积分精湛系统领先服务
- oracle connect by用法篇
- 英伟达960Linux驱动下载,全面支持GTX960 NVIDIA发布347.25驱动
- vue echarts 玫瑰图
- android swf 用什么打开方式,安卓swf文件用什么打开_swf文件用什么打开 mac_swf文件用什么打开 ipad...
- 产品经理必备神器——Axure软件试用评测
- 将png转换为bmp格式
- 我对计算机最感兴趣作文300,我与电脑作文300字
- 碎片文字摘录,触动心灵的文字,愿其成为我们前行的慰藉
- Mac上的Safari怎么屏蔽特定网站