我們在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"));