大众信息网

关于MFC菜单栏的问题

关注:225  答案:2  手机版
解决时间 2021-02-22 12:00
一个MFC的单文档(VC2010环境下的),想标记一个菜单项,于是我在CMainFrame::OnCreate里面添加了如下代码(其中menu是我添加的一个public变量):
menu.LoadMenuW(IDR_MAINFRAME);
this->SetMenu(&menu);
menu.GetSubMenu(0)->CheckMenuItem(0,MF_CHECKED|MF_BYPOSITION);
然后运行结果出现两个菜单栏,一个是原先有的,一个是IDR_MAINFRAME(菜单项已被标记),请问有什么办法让它只显示一个被标记过的菜单栏。
我试过如下办法:
1、在OnCreate函数里添加代码SetMenu(NULL),结果菜单栏没发生任何变化;
2、将下面的代码注释掉:
if (!m_wndMenuBar.Create(this))
{
TRACE0("未能创建菜单栏\n");
return -1; // 未能创建
}
结果运行时程序发生中止。

求问各位前辈怎么解决这个问题?
最佳答案
方法很多。。你可以直接用m_wndMenuBar 替换成你的menu ID 。还有就是 搜索m_wndMenuBar 注销掉它所有的相关代码。在使用你自己的menu。。
全部回答
新建一个对话框,在对话框上点击右键,选择建立类向导,为对话框建立一个新的类如ctdlg。一定要包含这个类的头文件。在响应函数里 ctdlg tdlg; tdlg.domodal;
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!