mfc 设置帮助快捷键(一)
·
在mfc工程中已经设置了按钮ID_MENU_HELP,单击可以打开对应的chm帮助文件。
现在尝试设置快捷键F1,打开帮助文件。尝试了几种方法,先介绍第一种。
第一种:设置Accelerator(更加通用)
1、在资源视图中,右键—》添加资源—》资源类型选择为 Accelerator—》新建。
2、打开资源视图中新建的Accelerator—》IDR_ACCELERATOR1,
将它的ID改为需要快捷设置的ID(此处为ID_MENU_HELP),键改为VK_F1。
3、在对话框Dlg.cpp的OnInitDialog函数中加入
// IDR_ACCELERATOR1 是加速键的ID
hAccel = ::LoadAccelerators(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDR_ACCELERATOR1));
在对话框Dlg.h中添加:
public:
HACCEL hAccel; // 快捷键
4、添加PreTranslateMessage函数:
打开资源视图下dialog中的对话框,右键-->类向导—》虚函数,找到PreTranslateMessage—》编辑代码。
BOOL CSoftwareDlg::PreTranslateMessage(MSG* pMsg)
{
// TODO: 在此添加专用代码和/或调用基类
if (::TranslateAccelerator(GetSafeHwnd(), hAccel, pMsg)) // 快捷键
return true;
return CDialogEx::PreTranslateMessage(pMsg);
}
此时打开项目就可以响应快捷键了
但是这里还有一个问题:
F1是系统的默认快捷键,按照上述方法之后会响应两个函数,一个是我们自行设置的帮助,另外一个就是系统的。
为了只显示我们设置好的,需要把后者屏蔽(再下一篇博客中会谈到)
更多推荐


所有评论(0)