我在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/en-us/library/4tbfebs6(v=vs.80).aspx
关于c++ - CMenu::ModifyMenu的问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6834541/