整天我都试图解决这个简单的问题,但没有任何成功。 我在互联网上发现了很多提示,但似乎没有一个对我的问题有效。
我的问题很简单:我想在运行时更改菜单项的标题
但似乎我发现的所有解决方案都非常具体。
我的要求是这样的: - 这是一个MFC应用程序(VS2010) - 这是一个SDI应用程序,而不是MDI - 我想更改主菜单项的标题(如“文件”),而不是子菜单的条目。
由于主要条目项目,菜单项目没有ID。因此,使用ON_UPDATE_COMMAND_UI的解决方案将无效!
我的问题是: - 我试过的代码,正在生成一个断言或异常 - 或函数调用返回false - 或者函数似乎运行良好,但我没有看到任何结果(标题仍然没有改变)
也许我使用错误的函数,或者调用函数的错误位置。 有没有人可以在我的应用程序预先条件下工作?
很多,非常感谢!
理查德
答案 0 :(得分:2)
Windows巧妙地隐藏了修改名称ModifyMenu
下的菜单的功能。当他们做那样的事情时,我讨厌它。真的让我希望Linux / Unix,有明确的名字,如shmdt
和mvwaddchnstr
。无论如何,暂时离开我的肥皂盒,你会称之为:
GetParentFrame()->GetMenu()->ModifyMenuW(1, MF_BYPOSITION, 0, L"New Item");
GetParentFrame()->Invalidate();