我有一个带有各种菜单项的菜单,就像您通常那样。每个MenuItem(按钮)都有一个标题,我想在运行时更改该标题。在一个没有问题的正常按钮上,我只是拨打GetDlgItem(ID)->SetWindowText(CString);
在运行时更改MenuItem标题
但是我不能在菜单项上这样做,因为我无法将ID分配给它们中的任何一个。属性编辑器中的ID字段实际上显示“ID无法编辑”。
那么如何在运行时更改菜单项文本?
编辑:我试过使用CMenu :: ModifyMenu但是我一直不成功。我不知道如何指定按钮(元素)进行更改。另外,我对CString作为参数传递方式的正确性持怀疑态度。
这是我的(失败)的尝试:
CString str = "Foo";
CMenu * pMenu = m_wndToolBar.GetMenu();
pMenu->ModifyMenu(1, MF_BYPOSITION | MF_STRING, 0 /*Don't know what to pass as nIDNewItem */, str);
这(在调用ModifyMenu方法)抛出一个调试断言错误。请不要说我不知道什么nIDNewItem。
谢谢你的回答。我之前偶然发现了CMenu :: ModifyMenu,但是我没有成功更改标题。请看我编辑的问题!谢谢! – 2011-06-22 11:27:20