VS2010 Accelerator加速键的创建
说明:创建了基于单文档的MFC
1.添加菜单,并定义快捷键
(1).打开“资源视图-Menu-IDR_MAINFRAME”,双击后出现如下视图:
(2).添加菜单项,名称为显示,快捷键为Ctrl+W,在属性编辑框中编辑即可,ID为ID_SHOW,标题为:显示(&W)\tCtrl+W
(3).操作结束后如图所示:
2.定义加速键
双击打开“资源视图-Accelerator-IDR_MAINFRAME”,在列表的高亮区域双击,之后依次选择ID、修饰符、键、类型即可,也可在右侧的属性栏中完成选择,完成后如图所示:
3.添加加速键资源成员变量并初始化
(1).找到“类视图-项目名View”类,右键添加变量HACCEL,确定即可。如图所示:
(2).打开“项目名View.cpp”类,找到构造函数,在其中初始化加速键资源
//初始化加速键
//因为加速键是资源,所以也需要初始化
//IDR_MAINFRAME:为加速键的资源名
hAccKey = LoadAccelerators(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_MAINFRAME));
4.在PreTranslateMessage()函数中添加如下代码:
if(TranslateAccelerator(m_hWnd,hAccKey,pMsg))
{
return true;
}
截图如下:
说明:若类中无该函数,则需要自己添加。找到“类视图-项目名View”类,右键打开类向导,点击虚函数,在左下角列表中找到PreTranslateMessage,双击到右侧列表中,点击编辑即可,之后操作同上。(也可通过“项目-类向导”来添加此函数)过程如图所示:
5.编译运行项目,Ctrl+W即可响应