0

我整天都在尝试解决这个简单的问题,但没有任何成功。我在互联网上发现了很多提示,但似乎没有一个对我的问题有效。

我的问题很简单:我想在运行时更改菜单项的标题

但似乎,我发现的所有解决方案都非常具体。

我的要求是: - 它是一个 MFC 应用程序(VS2010) - 它是一个 SDI 应用程序,而不是 MDI - 我想更改主菜单项(如“文件”)的标题,而不是子菜单的条目。

由于主条目项,菜单项没有 ID。因此,使用 ON_UPDATE_COMMAND_UI 的解决方案将不起作用!

我的问题是: - 我尝试的代码正在生成断言或异常 - 或者函数调用返回 false - 或者函数似乎运行良好,但我没有看到任何结果(标题仍然不变)

也许我使用了错误的函数,或者调用函数的位置错误。有没有人可以在我的应用程序前提条件下工作的例子?

非常感谢!

理查德

4

1 回答 1

2

Windows 巧妙地将修改菜单的功能隐藏在ModifyMenu. 我讨厌他们做那样的事情。真的让我希望 Linux/Unix 具有清晰的名称,例如shmdtmvwaddchnstr. 无论如何,暂时离开我的肥皂盒,你会这样称呼它:

GetParentFrame()->GetMenu()->ModifyMenuW(1, MF_BYPOSITION, 0, L"New Item");
GetParentFrame()->Invalidate();
于 2014-11-04T06:33:12.223 回答