MFC中添加快捷键
转自:http://blog.sina.com.cn/s/blog_8216ada70101a8dd.html
基于Dialog的MFC工程中如何添加快捷键呢?大致分为以下几个步骤:
1. 在资源视图中添加资源,选择"Accelerator"选项新建即可;
2. 打开新建的文件夹下的"IDR_ACCELERATOR1"中编辑,其中包括ID、修饰符、键、类型。ID中选择你要添加快捷键的菜单、按钮的ID编号,修饰符中选择你是否要使用组合键,如:Alt、Alt+Shift等等,键中选择你要使用什么样的虚拟键码,类型中选择VK形式或者是ASCII形式。
3. 在你的对话框的头文件中添加快捷键变量,如HACCEL m_hAcc;
4. 在你的对话框的源文件的OnInitDialog函数中加载快捷键,如:
HACCEL m_hAcc=LoadAccelerators(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_ACCELERATOR1));
5. 重载函数PreTranslateMessage,使用类向导,重载虚函数PreTranslateMessage,
如:BOOL CVideoMonitorDlg::PreTranslateMessage(MSG* pMsg)
{
if (WM_KEYFIRST<=pMsg->message&&pMsg->message<= WM_KEYLAST)
{
HACCEL hAccel=m_hAcc;
if (hAccel && ::TranslateAccelerator(m_hWnd, hAccel, pMsg))
return TRUE;
}
return CDialogEx::PreTranslateMessage(pMsg);
}
6. 通过以上5个步骤基本上即可对工程中的菜单或者按钮添加热键。