簡體   English   中英

CMenu :: ModifyMenu的問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM