C++ MFC------ 快捷键

创建快捷键

该文讲解如何给dialog的菜单或者按钮添加快捷键。

1、局部快捷键

点击控件,右键点“属性”,在属性Caption后添加&Key,例如: &Y,即通过按Alt+Y即可触发快捷键,但是该方法只有控件focus时才能使用。

2、全局快捷键

快捷键创建函数:

BOOL WINAPI RegisterHotKey(

__in_opt HWND hWnd,

__in int id,

__in UINT fsModifiers,

__in UINT vk

);

其中,

hWnd:接收热键产生WM_HOTKEY消息的窗口句柄;

Id: 热键的标示符;

fsModifiers:  和vk键一起按下的键;

Vk: 热键的虚拟键码;

注销快捷键函数:

BOOL WINAPI UnRegisterHotKey(

_in_opt HWND hWnd,

_in int id

);

响应消息: WM_HOTKEY

在BEGIN_MESSAGE_MAP{ ---- } END_MESSAGE_MAP间添加:

ON_MESSAGE(WM_HOTKEY,OnHotKey);

响应函数:

LRESULT OnHotKey(WPARAM wParam,LPARAM lParam);

参数:

wParam: 标志符-----即控件ID;

lParam:

按键组合-------- LOWORD(lParam)  fsModifiers flags

HIWORD(lParam)    虚拟键码;

时间: 2024-10-24 22:20:21

C++ MFC------ 快捷键的相关文章

图文详解MFC程序设置菜单快捷键

原来觉得添加个快捷键就只要几分钟,上网搜索文章都写得很模糊, 只有这边文章不错. http://www.cplusplus.me/1263.html http://blog.sina.com.cn/s/blog_4a632b4d0101m9li.html MFC菜单添加快捷键 对于我这种编程大菜来讲,不写得极度明白加上图解的话,始终是难以理解并且会马上就忘的 . 文章来源:百度空间.伊瑞玛的缺陷 ①.资源视图点右键->添加资源->Accelerator MFC菜单添加快捷键1 ②.Accele

MFC DLL PreTranslateMessage 导致的快捷键不响应的问题?

解决办法: http://blog.sina.com.cn/s/blog_53d9f7e901000aef.html http://zhidao.baidu.com/link?url=wl3LlUGz_oCQplgHV6vyf-c0dOsBW4xNa68dQJJL_KH1WcjaETEdTvPRlf3ZgdXQ3vKpKRKmHYYOL02mW2vDGtbVrc-4pJuvPXDB_tnJSKu 上面贴出了方法,自己也验证了. 但这篇文章说不解决的问题的方法,而是说说MFC 为什么要用PreTr

[原]MFC中DIALOG(对话框)程序响应加速键(快捷键)

[原]MFC中DIALOG(对话框)程序响应加速键(快捷键) 2014-8-6阅读266 评论0 新建一个对话框程序,项目名为Test,删除默认确定,取消和静态文本框控件.添加一个按钮,Caption修改为“打开”,ID为IDC_Open,双击该按钮添加响应函数,响应函数如下: void CTestDlg::OnBnClickedOpen() { MessageBox("打开 被按下"); } 即程序运行之后点击“打开”则弹出一个对话框. 下面为这个按钮添加快捷键ctrl+o.左下角切

MFC使用WM_HOTKEY添加快捷键

本人MFC菜鸟一枚,由于项目需求,所以查找资料,终于成功了.下面是操作步骤: 1.声明热键消息处理函数原型          在.h中消息映射声明处(AFX_mSG字样之后)加入如下语句:          LRESULT     OnHotKey(WPARAM     wParam,LPARAM     lParam); 或在MFC Class Wizard(在窗体中右键点击类向导)中添加:       2.消息与相应处理函数相关联          在.Cpp中加入消息映射宏,使消息与相应处

VC/MFC中为程序定义全局快捷键

VC 2010-05-01 18:01:34 阅读287 评论0 字号:大中小 订阅 1.注册快捷键 在初始化函数,如OnInitDialog() 注册快捷键,代码如下: #define HotKeyID1 200 BOOL CDlgCloseProSetup::OnInitDialog() { CDialog::OnInitDialog(); ::RegisterHotKey(m_hWnd, HotKeyID1, NULL, VK_HOME); return TRUE; } RegisterH

MFC响应快捷键

CDialog类的消息循环中去掉了TranslateAccelerator函数,因此不能响应热键:同时由于对话框上可能有很多控件,且默认情况下这些子窗口已经截获了焦点,因此键盘消息已经被控件捕获了:同时为了实现控件焦点切换和对话框默认行为,  VK_TAB.VK_LEFT.VK_RIGHT.VK_UP.VK_DOWN. VK_RETURN.VK_ESCAPE 等键已经被截获处理,因此对话框没有控件时仍然不能完全响应按键消息.对话框不能收到WM_KEYDOW,关键是基类的CDialog::PreT

Qt for windows消息循环、libqxt分析和wince快捷键处理

利用Qt做windows图形界面开发和MFC相比,个人感觉还是比较简单好用的:首先利用Designer工具搞个ui文件:然后在程序中写几个信号和槽:然后加载ui文件:最后显示界面就搞定了. 在界面开发中,快捷键处理肯定是必不可少的.现在使用的是开源的第三方处理类:libqxt.它提供跨平台的解决方案:win和x11.使用起来也很方便.使用方便并不是万事大吉,我们要有求索精神:“知其然知其所以然”.好了废话不多说开始分析. Windows下程序设计总是要遵循它自身的机制的,在<windows程序设

ActiveX控件(MFC篇)

目录 第1章 VC++6.0创建控件    1 1.1 目标    1 1.1.1 方法    1 1.1.2 属性    1 1.1.3 事件    1 1.2 创建项目    2 1.3 项目结构    6 1.3.1 COM接口    6 1.3.2 COM类    7 1.3.3 属性页    7 1.3.4 应用程序类    8 1.3.5 注册与注销    8 1.4 方法    9 1.4.1 增加    9 1.4.2 删除    11 1.5 属性    12 1.5.1 Te

MFC框架程序剖析

一.           MFC MFC(Microsoft Foundation Class,微软基础类库)是微软为了简化程序员的开发工作所开发的一套C++类的集合,是一套面向对象的函数库,以类的方式提供给用户使用.利用这些类,可以有效发帮助程序员完成Windows应用程序的开发 二.           theAPP theApp代表应用程序实例. 在C×××App类中 ,有 theApp 这个变量,它是CWinApp类的派生类的对象,是一个全局变量. 全局变量在WinMain()前被创建.

【mfc】利用文件的读写,theApp全局变量来现实登录帐号管理系统

本文亦是在<[mfc]用对话框的切换实现重新登录>(点击打开链接)的进一步工作,也是对其的进一步改进,上次的登录只是在判断用户输入的用户名与密码是否为admin与123,这次则利用文件的读写实现用户帐号的创建.删除与修改,不再拘泥与admin与123这个帐号,用户可以创建很多帐号,并且赋予其是否有修改帐号的权限,同时,利用theApp全局变量,用户一旦成功,其登录信息则会一直被记录,类似与网页中的Session.虽然现在VC6中的mfc已经过时了,但是仍然具有研究意义,毕竟XP曾经是一个无法超