mfc使用键盘加速键
首先创建一个菜单,ID分别为IDM_FILE_NEW,IDM_FILE_OPEN,IDM_FILE_CLOSE。
分别对菜单各项进行响应。
在OnInitDialog()中,添加标题栏菜单:
HMENU hMenu = ::LoadMenu(::GetModuleHandle(nullptr), MAKEINTRESOURCE(IDR_MENU1)); ::SetMenu(this->GetSafeHwnd(), hMenu);
创建一个Accelerator资源,添加如下内容:
ID Modifier Key Type
IDM_FILE_NEW None ^N ASCII
IDM_FILE_OPEN None VK_BACK VIRTKEY
IDM_FILE_CLOSE None ^E ASCII
这样,就把键盘加速键和菜单各个选项联系在一起了。接下来,就要加载一下Accelerator资源文件。
在OnInitDialog()中,加载资源文件IDR_ACCELERATOR:
m_hAccelerator = ::LoadAccelerators(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_ACCELERATOR));
注:private:
HACCEL m_hAccelerator;
7.重载虚函数PreTranslateMessage():
BOOL CAcceleratorDemoDlg::PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class
if (m_hAccelerator)
{
if (::TranslateAccelerator(this->GetSafeHwnd(), m_hAccelerator, pMsg))
return TRUE;
}
return CDialogEx::PreTranslateMessage(pMsg);
}
经过以上步骤,便实现了菜单键盘加速键。
转载于:https://blog.51cto.com/whatever957/1623443
mfc使用键盘加速键相关推荐
- 10.3 键盘加速键
摘录于<Windows程序(第5版,珍藏版).CHarles.Petzold 著>P373 键盘加速键是可以生成 WM_COMMAND(或者有时是 WM_SYSCOMMAND)消息的组合键 ...
- 非框架窗口键盘加速键的使用
在设计应用程序菜单时,可以选择使用键盘加速键给任意或者全部菜单项分配快捷键,加速键也会引发WM_COMMAND消息. 第一步,是要创建一个加速键表(特殊的资源).具体方法是,在资源列表视图里面,添加加 ...
- MFC绘制键盘控制动画
MFC绘制键盘控制动画 参考孔令德老师的<计算几何算法与实现> 使用双缓冲机制绘制中心位于窗口客户区中心的立方体线框模型,可以使用键盘上的方向键旋转立方体. 1.创建MFC单文档项目: 2 ...
- MFC之键盘和键盘消息处理
今天学习了最基本的MFC操作,键盘及键盘消息函数,跟着书中的内容自己编了个小程序.检测用户是否同时按下SHIFT和B键 第一步:先是建了一个单文档模式的MFC程序,添加了键盘消息及处理函数.键盘消息处 ...
- MFC获取键盘光标和鼠标光标所在控件的ID
键盘光标: CWnd *pWnd = GetFocus(); if (pWnd == NULL) ;//no focus else nID = pWnd- ...
- 技法:对你的应用添加键盘加速键
对IsDialogMessage的误解 有一个API函数可能经常容易造成误解,它就是IsDialogMessage.IsDialogMessage将会判断一个消息是否是针对指定对话框的消息,如果是的话 ...
- 关于VS2010中键盘加速键无效的问题
/ // // Accelerator //IDR_ACCELERATOR ACCELERATORS BEGINVK_F2, IDM_NEW, VIRTKEY, NOINVERT END 在资源中添加 ...
- 【EasyUse】关于键盘加速键的几点思考
因为EasyUse程序要用到键盘加速,中间遇到了一些难题.汇总以便以后使用. 1.该在哪个地方截取消息(?) 关于这问题,认识还不够深刻.有一点可以确定,你在程序运行的CXXApp和CXXDlg的Pr ...
- 加载自己的键盘加速键
// TODO: 在此添加专用代码和/或调用基类 //1.加载加速键表 HINSTANCE hInst=AfxGetResourceHandle(); LPCTSTR lpID=MAKEINTRESO ...
最新文章
- text-overflow
- 云炬Android开发笔记 17商品详情功能开发
- [vue] vue怎么改变插入模板的分隔符?
- OpenBSD之网络配置
- Python实现FP树
- NUnit 入门知识
- 安装rpm 树莓派4_树莓派3上安装使用centos 7.4
- 我是小小志愿者——国际志愿者日线上宣传活动
- 数据平台建设的痛点,如何进行元数据治理?
- FusionCharts参数及功能特性详解(二)
- graphite http api
- 深度神经网络 英语,深度神经网络英文
- 大蕉毕业三周年了,有话对你说 No.103
- c/c++位操作简介--移位、位与、位或、异或
- Pytorch读取Mxnet的rec格式数据
- 可视化 | 教你用Python实现热力图(二)
- 对随机过程的简单理解
- 双智机器人 珠海_格力“双智多元化”成果显著 珠洽会展示核心科技
- 阿里云服务器安装配置流程
- 计算机内存不足建议使用64,电脑内存不足的解决方法