MFC程序添加快捷键
MFC里使用快捷键的原理:按键组合成一个COMMAND/COMMAND_UI消息放入消息队列,然后程序对该消息进行处理。
1.添加Accelerator表(按键组合与消息的对应表)
编辑Accelerator表
修改表ID
在Resource View窗口修改表ID为 IDR_MYACCEL
2.添加消息处理
第一种:右键单击Accelerator表选项,Add Event Handler
第二种:在程序其他地方处理,比如MenuBar、ToolBar及右键菜单消息处理中,只要其中消息的ID与表中ID一致即可
3.加载Accelerator资源
在OnInitDialog中:
HACCEL m_hAccel;
m_hAccel = LoadAccelerators ( AfxGetResourceHandle(),MAKEINTRESOURCE(IDR_MYACCEL) );
4.激活快捷键
BOOL CXXXDlg::PreTranslateMessage(MSG* pMsg)
{
if ( NULL != m_hAccel &&
pMsg->message >= WM_KEYFIRST && pMsg->message <= WM_KEYLAST )
{
return TranslateAccelerator ( m_hWnd, m_hAccel, pMsg );
}
else
return CDialog::PreTranslateMessage(pMsg);
}
TranslateAccelerator()函数试图将按键组合成COMMAND消息并处理。
或者直接在函数内判断按键的组合情况
BOOL CXXXDlg::PreTranslateMessage(MSG* pMsg)
{
if(pMsg->message == WM_KEYDOWN)
{
if(GetAsyncKeyState(VK_CONTROL)) //CTRL 按下
{
if( pMsg->wParam == 'C') //C按下
OnCopy();
if( pMsg->wParam == 'V') //V按下
OnPaste();
if( pMsg->wParam == 'L') //L按下
OnClear();
if( pMsg->wParam == 'A') //A按下
OnSelectAll();
}
}
else
return CDialog::PreTranslateMessage(pMsg);
}
MFC程序添加快捷键相关推荐
- 给黑莓程序添加快捷键
在集成开发环境中打开资源页,在Title属性中,开发者一般会在这里指定应用程序的名字.在名字中挑一个字母,然后在后面加上\u0332,这个字母就成了该应用程序的快捷键. 如果系统原来对这个字母定义了快 ...
- MFC 如何添加快捷键
添加的函数: 1 HACCEL hAccel; 2 hAccel = LoadAccelerators(AfxGetresourceHandle(),MAKEINRESOURCE(IDR_ACCE ...
- 应用程序自定义快捷键
版权声明:本文首发 http://asing1elife.com ,转载请注明出处. https://blog.csdn.net/asing1elife/article/details/8282065 ...
- DELPHI 开发的 OCX 控件在 MFC 程序中编辑框快捷键不好使的解决
公司一个大型的项目中使用了 DELPHI 来开发 OCX 控件做数据库的管理,但是GIS图形系统使用 MFC 开发,最后将 OCX 嵌入到 MFC 程序中作为一个完整的系统交付用户使用,但是在使用过程 ...
- ipad键盘程序坞快捷键_将键盘快捷方式添加到您的Web应用程序。
ipad键盘程序坞快捷键 React和几行代码可以挽救! 我想象一个场景. 您在一家名为Adob的大公司工作--您在一家名为Abode的初创公司工作,开发了一个名为PhotoStore的照片编辑应用程 ...
- 【网络通信】简易MFC程序的创建与命令行工具cl.exe、linker.exe的使用
简易MFC程序的创建与命令行工具cl.exe.linker.exe的使用 实验目标 实验流程 一.MFC程序 1.创建MFC项目 2.资源与代码 3.演示效果 二.编译连接windows API程序 ...
- 基于Dialog的MFC程序在启动时隐藏为托盘程序(四)
这部分说一下如何加menu..如果做小气球.. mfc的menu确是不如C#活着java那么easy.. 首先在rc里添加menu资源..然后在ui界面里先设置一下你的菜单.. 在第(二)部分已经简单 ...
- mfc 内嵌 本地html,MFC程序中内嵌网页,附示例工程
最近在课程设计,因为小悠太懒了,是在不想用C++完成一些简单的文件上传下载操作,于是就想着将网页内嵌到程序中,上传下载神马的就直接使用网页Web来完成就好了,本示例中将演示在MFC程序中内嵌一个htm ...
- VC MFC程序,在About对话框中获取并显示程序的版本号
=================================================本文为HeYuanHui原作 转载必须确保本文完整并完整保留原作者信息及本文原始链接! NN: ...
最新文章
- Ubuntu 下载安装删除方式(自己常用,保持更新)
- Hibernate学习(二)
- 如何做一场高质量的分享
- hadoop yarn集群HA安装及配置
- 使用Intel编译器系列合集
- Red hat linux ping: unknown host www.baidu.com
- 耿楠《LaTeX 中文教程》随堂学习记录
- 2000w mysql_MySQL数据库优化(基于酒店2000w条数据)
- 反击网络执法官(转)
- CTeX书写规范、WinEdt编写XeLaTeX、数模格式编写总结
- Java 常用数据类型(总结)
- 出现老是弹出Visual Studio 实时调试器 的问题
- 美女直播这么火,那你知道怎么测试直播软件吗?
- TypeScript-基础类型学习
- 职场中不能做的四件事,这才是情商高的表现!
- [资源]--100张极简约的电脑桌面壁纸总有一张你喜欢
- Android禁用返回键
- GNS3实验:三层交换机配置
- 工作汇报PPT模板推荐
- 使用 EasyCV Mask2Former 轻松实现图像分割
热门文章
- linux服务器怎么连接无线网卡,在linux上怎么安装无线网卡驱动?_网站服务器运行维护,linux,无线网卡...
- 排序之快速排序的java语言简单实现
- MySQL学习总结(2) --- 数据表管理(增删改查)、使用DQL查询数据(SELECT)
- 执行mysql语句卡死
- 【python】wallpaperscraft壁纸爬虫及下载器实现
- JavaScript(获取时间戳)
- vivoX9sl的Android隐藏游戏,Vivo手机的隐藏功能,超乎想象的好用,你们都用过几个...
- 我与学霸的距离计算机,我与学霸的差距作文500字
- Java数组 强制类型转换
- HDU 1269 迷宫城堡(强连通图的判定)