VC添加全局热键的方法
VC添加全局热键的方法
这个方法靠谱
http://blog.csdn.net/lujianfeiccie2009/article/details/7498704
MFC(32) 
版权声明:本文为博主原创文章,未经博主允许不得转载。
- /************************************************************************/
- // VirtualKey.H By:lujianfei 2009.08.22
- // 定义热键
- #define IDH_HOT1 4001
- #define IDH_HOT2 4002
- #define IDH_HOT3 4003
- #define IDH_HOT4 4004
- #define IDH_HOT5 4005
- #define IDH_HOT6 4006
- #define IDH_HOT7 4007
- #define IDH_HOT8 4008
- #define IDH_HOT9 4009
- #define IDH_HOT10 4010
- #define IDH_HOT11 4011
- #define IDH_HOT12 4012
在InitialDialog里面注册自定义的热键
- RegisterHotKey(this->GetSafeHwnd(),IDH_HOT1, MOD_CONTROL, 'Q'); //CH$
- RegisterHotKey(this->GetSafeHwnd(),IDH_HOT2, MOD_CONTROL, 'W'); //EN$
- RegisterHotKey(this->GetSafeHwnd(),IDH_HOT3, MOD_CONTROL, 'E'); //BUSINESS1$
- RegisterHotKey(this->GetSafeHwnd(),IDH_HOT4, MOD_CONTROL, 'R'); //BUSINESS2$
- RegisterHotKey(this->GetSafeHwnd(),IDH_HOT5, MOD_CONTROL, 'T'); //BUSINESS3$
- RegisterHotKey(this->GetSafeHwnd(),IDH_HOT6, MOD_CONTROL, 'Y'); //BUSINESS4$
- RegisterHotKey(this->GetSafeHwnd(),IDH_HOT7, MOD_CONTROL, 'U'); //BUSINESS5$
- RegisterHotKey(this->GetSafeHwnd(),IDH_HOT8, MOD_CONTROL, 'I'); //BUSINESS6$
- RegisterHotKey(this->GetSafeHwnd(),IDH_HOT9, MOD_CONTROL, 'O'); //NUM1$
- RegisterHotKey(this->GetSafeHwnd(),IDH_HOT10, MOD_CONTROL, 'P'); //NUM2$
- RegisterHotKey(this->GetSafeHwnd(),IDH_HOT11, MOD_CONTROL, 'A'); //NUM3$
- RegisterHotKey(this->GetSafeHwnd(),IDH_HOT12, MOD_CONTROL, 'S'); //NUM4$
- RegisterHotKey(this->GetSafeHwnd(),IDH_HOT13, MOD_CONTROL, 'D'); //NUM5$
在PreTranslateMessage方法里添加全局热键的事件响应
- BOOL CLedControllerDlg::PreTranslateMessage(MSG* pMsg)
- {// TODO: Add your specialized code here and/or call the base class
- char buffer[20];
- if( WM_HOTKEY == pMsg->message )
- {
- switch(pMsg->wParam)
- {
- case IDH_HOT1:
- strcpy(buffer,"CH$");
- break;
- case IDH_HOT2:
- strcpy(buffer,"EN$");
- break;
- case IDH_HOT3:
- strcpy(buffer,"BUSINESS1$");
- break;
- case IDH_HOT4:
- strcpy(buffer,"BUSINESS2$");
- break;
- case IDH_HOT5:
- strcpy(buffer,"BUSINESS3$");
- break;
- case IDH_HOT6:
- strcpy(buffer,"BUSINESS4$");
- break;
- case IDH_HOT7:
- strcpy(buffer,"BUSINESS5$");
- break;
- case IDH_HOT8:
- strcpy(buffer,"BUSINESS6$");
- break;
- case IDH_HOT9:
- strcpy(buffer,"NUM1$");
- break;
- case IDH_HOT10:
- strcpy(buffer,"NUM2$");
- break;
- case IDH_HOT11:
- strcpy(buffer,"NUM3$");
- break;
- case IDH_HOT12:
- strcpy(buffer,"NUM4$");
- break;
- case IDH_HOT13:
- strcpy(buffer,"NUM5$");
- break;
- }
- }
- return CDialog::PreTranslateMessage(pMsg);
- }
VC添加全局热键的方法的更多相关文章
- c#为程序添加全局热键的方法
在程序失去焦点或者在后台运行时,可以通过使用全局热键的方式,进行一些快捷的操作,如QQ默认操作中ctrl+alt+A调出截图功能. 在Windows中实现热键功能需要使用win32的Api函数Regi ...
- 让程序只运行一个实例(Delphi篇)(三种方法,其中使用全局原子的方法比较有意思)
Windows 下一个典型的特征就是多任务,我们可以同时打开多个窗口进行操作,也可以同时运行程序的多个实例,比如可以打开许多个资源管理器进行文件的移动复制操作.但有时出于某种考虑(比如安全性),我们要 ...
- Qt全局热键(windows篇)
Qt对于系统底层,一直没有很好的支持,例如串口并口通信,还有我们经常都会用到的全局热键,等等.既然Qt可能出于某种原因,不对这些进行支持,我们就只能自己写代码,调用系统相关的API了. 注意,这个 ...
- Qt全局热键(windows篇)(使用RegisterHotKey和句柄进行注册)
转载:http://www.cuteqt.com/blog/?p=2088 Qt对于系统底层,一直没有很好的支持,例如串口并口通信,还有我们经常都会用到的全局热键,等等.既然Qt可能出于某种原因,不对 ...
- Qt5全局热键-QxtGlobalShortcut
最近做一个项目需要注册全局热键,在网上搜索发现有个第三方库 libqxt 中给出一个比较好的跨平台的解决方案,就是 QxtGlobalShortcut. 但是编译过程中发现这个库用到的QAbstrac ...
- Java设置全局热键——第三方包jintellitype实现
Java原生API并不支持为应用程序设置全局热键.要实现全局热键,需要用JNI方式实现,这就涉及到编写C/C++代码,这对于大多数不熟悉C/C++的javaer来说,有点困难.不过幸好,国外有人已经实 ...
- <转>MFC注册系统/全局热键。
<转>MFC注册系统/全局热键. 1. BEGIN_MESSAGE_MAP(CRS232TESTDlg, CDialog) //{{AFX_MSG_MAP(CRS232TESTDlg) O ...
- VC 宏与预处理使用方法总结
目录(?) C/C++ 预定义宏^ C/C++ 预定义宏用途:诊断与调试输出^ CRT 和 C 标准库中的宏^ NULL 空指针^ limits.h 整数类型常量^ float.h 浮点类型常量^ m ...
- VC++添加工具栏
VC添加工具栏 方法一:添加ICON图标 1. 新建一个基于对话框的项目:Test 2. 在类CTestDlg中, 添加两个变量: CToolBarCtrl m_ToolBar1; CImageLis ...
随机推荐
- FFmpeg 的sws_getContext函数 、sws_scale函数
FFmpeg里面的sws_scale库可以在一个函数里面同时实现:1.图像色彩空间转换:2.分辨率缩放:3.前后图像滤波处理. 其核心函数主要有三个: // 初始化sws_scalestruct Sw ...
- bzoj4010
知名美食家小 A被邀请至ATM 大酒店,为其品评菜肴. ATM 酒店为小 A 准备了 N 道菜肴,酒店按照为菜肴预估的质量从高到低给予1到N的顺序编号,预估质量最高的菜肴编号为1. 由于菜肴之间口味搭 ...
- ACM学习历程——UVA 127 "Accordian" Patience(栈;模拟)
Description ``Accordian'' Patience You are to simulate the playing of games of ``Accordian'' patie ...
- 在oracle中,select语句查询字段中非纯数字值
最近,将原来的数字符字段转换为数字时,总报错误:无效数字. 如何找出其中哪些是非数字字符的记录?比较麻烦的事.下面是用Oracle DB自带的函数translate可以找出来的 1.创建测试表 Cre ...
- php命名空间(namespace)内如何使用系统类
作者:ffsystem 使用命名空间,可以更方便的组织代码,以及代码复用.新写的一个项目引入了命名空间. 简介:使用namespace,使用__autoload自动导入类. 今天将以前的一段代码,加入 ...
- Velocity常用标签的讲解
Velocity是一个基于java的模板引擎(template engine).它允许任何人仅仅简单的使用模板语言(template language)来引用由java代码定义的对象. 当Veloci ...
- Linq to Object之非延迟标准查询操作符
非延时标准查询操作符是指不具备延时查询特性的标准查询操作符,这些操作符一般用于辅助延时标准查询操作符使用. 1.ToArray操作符 ToArray操作符用于将一个输入序列转换成一个数组. 方法原型: ...
- 关于web中注册倒数的问题(亲测)
<title></title> <script type="text/javascript"> var leftSecond ...
- Android源码中添加APP
参考罗升阳<Android系统源代码情景分析> 在Android源码中,我们通常把实验性质的Android APP放在packages/experimental目录下.对于一个简单的应用程 ...
- javaScript之事件处理程序
事件就是用户或浏览器自身执行的某个动作,JavaScript与HTML的交互也是通过事件实现的.而相应某个事件的函数就叫做事件处理函数.包括以下几种: 1.HTML事件处理程序 某个元素支持的每 ...