MFC菜单快捷键的应用

时间:2021-02-12 00:20:39

各种程序的菜单,大多数都有快捷键对应。所以,自己在做的时候也想加上。

第一步:在资源文件Accelerator中添加快捷键资源,此处的ID一定要与菜单项的ID一致。

第二步:在程序的主文件,一般是...view.h中声明一个HACCEL hAccel变量,在...view.cpp文件中的初始化函数(OnCreate(...))中添加如下代码

hAccel=::LoadAccelerators(AfxGetInstanceHandle(),MAKEINTRESOURCE(菜单的资源ID));

第三步:重写PreTranslateMessage函数,添加这个函数的方法和添加消息响应函数是一样的。在函数加入如下代码:

if (::TranslateAccelerator(GetSafeHwnd(),hAccel,pMsg))   
        
return     true ;

 

 以后只要在Accelerator资源文件中添加快捷键就可以了。

最后记得自己添加菜单的OnCommond响应函数。