[英]Problems with CMenu::ModifyMenu
我在CFrameWnd派生類的OnCreate方法中使用CMenu :: ModifyMenu更改菜單上的標題以匹配用戶語言。
我正在使用VC ++設計器,並且菜單在.rc文件中聲明。
對於MENUITEM元素,我按如下方式使用它:
m_wndMenu->ModifyMenu(ID_APP_EXIT, MF_BYCOMMAND, NULL, CString((LPWSTR) ID_APP_EXIT));
對於POPUP元素(沒有ID),我按如下方式使用它:
m_wndMenu->ModifyMenu(0, MF_BYPOSITION | MF_STRING, NULL, CString((LPWSTR) ID_MENU_POPUP_FILE));
它可以按預期的方式更改字幕,但是對於我最初更改其標題時被禁用的菜單項,它們將被啟用。 我該如何解決?
在調用ModifyMenu
之后,您可能必須顯式禁用菜單項並設置工具提示文本。 使用ModifyMenu
將有效地破壞前一個菜單項並創建一個新菜單項。 您將丟失資源文件中的任何設置和初始化,否則將丟失上一項或菜單中的設置和初始化。
查看備注: http : //msdn.microsoft.com/zh-cn/library/4tbfebs6( v= vs.80).aspx
對於這種情況,最好使用EnableMenuItem函數,例如m_wndMenu-> EnableMenuItem(ID_APP_EXIT,MF_BYCOMMAND | MF_ENABLED);
這將工作...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.