【发布时间】:2011-12-22 09:07:09
【问题描述】:
如何在 mfc c++ 菜单项上设置检查我尝试了这个,但是,总是未选中的菜单项。
CString tcBuff;
CMenu popMenu;
popMenu.LoadMenu(nMenuID);
if (text.Compare(defaultconfig) == 0)
{
tcBuff.LoadStringW(IDC_DEFAULTREMOVE);
popMenu.ModifyMenuW(ID_CONFIGURATION_DEFAULT,0,ID_CONFIGURATION_DEFAULT,tcBuff);
popMenu.CheckMenuItem(IDC_DEFAULTREMOVE, MF_CHECKED || MF_BYCOMMAND);
}
感谢您的帮助。
【问题讨论】:
-
您正在修改一个新的
CMenu对象,而不是您的应用程序中使用的 actual 菜单。也许是时候拿起a good book on C++ 并确保您了解 RAII? -
感谢您的回答,我解决了我的问题:)
-
通常情况下,要检查您不这样做的菜单项。您应该使用 ON_UPDATE_COMMAND_UI(IDC_DEFAULTREMOVE, function) 来通过 ID 处理菜单项的函数。该函数有一个参数pCmdUI。因此,您可以在 if 块中执行 pCmdUI->SetCheck(TRUE); 和 pCmdUI->SetText(tcBuff);。跨度>
标签: c++ visual-c++ mfc