【问题标题】:Changing MFC Menu Popup text in C++在 C++ 中更改 MFC 菜单弹出文本
【发布时间】: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

标签: visual-c++ mfc


【解决方案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吗? [我通常告诉我的程序员永远不要说“不起作用”,而是要解释什么不起作用]
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-29
  • 1970-01-01
相关资源
最近更新 更多