MFC SDI应用程序,如何更改菜单项的标题?

时间:2014-11-03 19:35:13

标签: menu mfc caption sdi

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

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

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

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

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

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

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

很多,非常感谢!

理查德

1 个答案:

答案 0 :(得分:2)

Windows巧妙地隐藏了修改名称ModifyMenu下的菜单的功能。当他们做那样的事情时,我讨厌它。真的让我希望Linux / Unix,有明确的名字,如shmdtmvwaddchnstr。无论如何,暂时离开我的肥皂盒,你会称之为:

GetParentFrame()->GetMenu()->ModifyMenuW(1, MF_BYPOSITION, 0, L"New Item");
GetParentFrame()->Invalidate();