基于对话框的MFC 菜单项关联快捷键
第一步:项目->添加资源Accelerator

第二步:在资源视图中打开Accelerator->IDR_ACCELERATOR1
填写ID(添加的菜单项ID)、修饰符、键、类型

第三步:关联加速器与菜单
1、在对话框类 C***Dlg.h文件,类定义中加入变量HACCEL hAccel;

2、在对话框类C***Dlg.CPP文件中,的OnInitDialog函数中添加如下代码:
hAccel = ::LoadAccelerators(AfxGetInstanceHandle(),
MAKEINTRESOURCE(IDR_ACCELERATOR1));
//其中IDR_ACCELERATOR1为加速器ID
//

3、添加虚函数PreTranslateMessage().
类向导->PreTranslateMessage

4、在PreTranslateMessage()函数里面添加下面的代码:
if (::TranslateAccelerator(GetSafeHwnd(), hAccel, pMsg))
return true;

至此,菜单项与快捷键关联,继续编译菜单项响应函数即可。
本文详细介绍了如何在基于对话框的MFC项目中,通过添加资源Accelerator、设置菜单项ID、键和类型,并在对话框类中关联加速器与菜单,实现菜单项的快捷键功能。包括加载加速器表、预处理消息函数和虚函数的使用。
2251

被折叠的 条评论
为什么被折叠?



