C++ - MFC - 更改 CMenu 的文本

标签 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”?

提前致谢

最佳答案

您需要调用DrawMenuBar之后按照 ModifyMenu 中的指定执行函数文档:

The application must call the DrawMenuBar function whenever a menu changes, whether the menu is in a displayed window.

关于C++ - MFC - 更改 CMenu 的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46159374/

相关文章:

c++ - 无法正确调整 CToolBar 子类的大小

c# - 无法将 winform 控件大小传递给非托管代码

c++ - 函数和数组有问题

c++ - 当我们有纯虚函数层次结构时如何实例化一个对象?

c++ - 编译空文件是否遵循 C++ 标准?

mfc - 错误 C2039 : “SetDefaultDllDirectories” :is not a member of global namespace

c++ - 如何使用 D2D 和类 CD2DEllipse 在 C++ MFC 上绘制椭圆

c++ - 启动另一个应用程序作为弹出窗口

c++ - 对于巨大的稀疏对称矩阵,哪个是 Spectra 库中最快的特征值求解器?

c++ - 如何使用cmake pack redhat风格的rpm,它是major和 “-devel”?