C ++ - MFC - 更改CMenu

时间:2017-09-11 15:35:33

标签: c++ mfc

大家早上好,

我创建了一个管理多语言的应用程序。当我动态更改应用程序的默认语言时,除了一个组件之外,不同图形组件的所有文本都会发生很大变化。我不知道为什么?

我尝试使用这些行来修改菜单标题的文本,但只有在我将鼠标放在此菜单上时才会更改。

MENUITEMINFO info;

info.cbSize = sizeof(MENUITEMINFO);

info.fMask = MIIM_ID;



VERIFY(AfxGetMainWnd()->GetMenu()->GetMenuItemInfoA(0, &info, TRUE));

AfxGetMainWnd()->GetMenu()->ModifyMenuA(0,  MF_STRING | MF_BYPOSITION, info.wID, theApp.vattingTranslation.GetDescription(256).c_str());

enter image description here

为什么我的菜单项“Système”不会自动刷新?

提前致谢

1 个答案:

答案 0 :(得分:3)

您需要按照DrawMenuBar文档中的说明调用ModifyMenu函数:

  

应用程序必须在菜单时调用DrawMenuBar函数   更改,菜单是否在显示的窗口中。