在 C++ 中更改 MFC 菜单弹出文本

Posted

技术标签:

【中文标题】在 C++ 中更改 MFC 菜单弹出文本【英文标题】:Changing MFC Menu Popup text in C++ 【发布时间】:2019-04-15 01:29:11 【问题描述】:

我正在编写一个 MFC C++ 应用程序。我的主窗口中有以下菜单。我正在尝试通过 C++ 更改标题为“&File”的 FIRST POPUP 项目的文本。我该怎么做?

IDR_ISOPROTYPE MENU
BEGIN
    POPUP "&File"
    BEGIN
        POPUP "second"
        BEGIN
            MENUITEM "third",                   ID_33280
        END
        MENUITEM "&Open...\tCtrl+O",            ID_FILE_OPEN
        MENUITEM "Rever&t",                     ID_FILE_REVERT

【问题讨论】:

尝试从 CWnd::OnInitMenu 回调中更新菜单项,虽然我不确定它是否被调用用于菜单栏(而不是弹出菜单)。 这能回答你的问题吗? Modifying menu items 【参考方案1】:

首先,获取handle to the menu,点赞

HMENU hMenu = GetMenu(AfxGetApp()->m_pMainWnd->GetSafeHwnd());

然后,调用 ModifyMenu 函数

ModifyMenu(hMenu, 0, MF_BYPOSITION | MF_STRING, 0, "New&File");

如果需要修改子菜单的文字,仍然可以使用 ModifyMenu 函数,但使用子菜单句柄

HMENU hSubMenu = GetSubMenu(hMenu, 1);

【讨论】:

您的解决方案对我不起作用。您愿意通过屏幕共享提供帮助吗?我在美国乔治亚州亚特兰大。我可以通过电子邮件联系到 danielgifford@gmail.com。我将在这里发布答案以使大家受益。听说你在法国。对于您的损失,我深表歉意(巴黎圣母院)。 抱歉,我不喜欢通过屏幕共享来解决这个问题——你能详细说明一下Your solution doesn't work for me吗? [我通常告诉我的程序员永远不要说“不起作用”,而是要解释什么不起作用]

以上是关于在 C++ 中更改 MFC 菜单弹出文本的主要内容,如果未能解决你的问题,请参考以下文章

关于MFC主菜单和右键弹出菜单

MFC对话框中如何响应弹出式菜单事件 点击按钮 弹出菜单 菜单消息事件响应不了

VS2017 MFC应用中添加模态对话框时为其添加类弹出如下错误

MFC 工具栏中的弹出菜单

MFC中怎么设置单击菜单弹出对话框?

如何在 MFC 中更改弹出窗口的默认位置