2014-11-03 71 views
0

整天我试图解决这个简单的问题,但没有任何成功。 我在互联网上发现了很多提示,但似乎没有一个适用于我的问题。MFC SDI应用程序,如何更改菜单项的标题?

我的问题很简单:我想换一个menue项的标题,而运行时

但现在看来,我发现所有的解决方案是非常具体的。

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

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

我的问题是: - 无论是我试过的代码,正在生成的断言或异常 - 或以虚假 的函数调用返回 - 或功能似乎运作良好,但我没有看到任何结果(字幕仍然没有变化)

也许我使用了错误的功能,或调用函数的地方是错误的。 有没有人可以在我的应用程序前提下工作?

很多,非常感谢!

理查德

+0

修改菜单项使用其索引,并包括'MF_BYPOSITION'。 – user1793036 2014-11-04 00:15:34

回答

2

的Windows巧妙地隐藏了修改下ModifyMenu神秘名称的菜单功能。当他们做那样的事时我讨厌它。真的让我对Linux/Unix有很高的期望,比如shmdtmvwaddchnstr。无论如何,现在下来我的肥皂盒,你会这样称呼它:

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

你好,我试过你的代码。但它失败了。从哪里我需要调用这个ModifyMenu()?我在我的CFormView类中的OnInitialUpdate中添加了代码。但是这个调用导致了一个例外:-( – NBGer 2014-11-07 11:47:24