我们在MFC中使用菜单时,都想使菜单项有快捷键,比如Ctrl+B等,在VC++2008或者VC++2010上面,我们会在子菜单项的Caption里输入菜单名以及额外输入(&I)\tCtrl+I,就能够显示如 发送(I) Ctrl+I 这样子菜单项,然后在Accelerator里面绑定一下快捷键及菜单ID就可以了。
但是问题出现了,在VC++2008和VC++2010上面没有效果(VC++6.0除外,它是可以的)。
原因:VC++2008和VC++2010的窗体的信息保存在注册表中没有更新所导致的~。我们必须删掉他们,让他们重新更新一下。
解决方案:在运行中输入“regedit”,进入注册表编辑区,找到[HKEY_CURRENT_USER\Software\应用程序向导生成的本地应用程序(也可能是英文,Local AppWizard-Generated Applications)],里面都是你运行过的VS的工程,可以全部删了,也可以只删你现在的工程。然后重新编译程序,发现就OK了。
//如果修改了关于菜单中的内容,进入注册表编辑区,找到[HKEY_CURRENT_USER\Software\
//Local AppWizard-Generated Applications]只删你现在的工程。然后重新编译程序,发现就OK了
SetRegistryKey(_T('Local AppWizard-Generated Applications'));
MFC 菜单项快捷键无效
最新推荐文章于 2023-12-07 14:16:28 发布