一个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; // 未能创建
}
结果运行时程序发生中止。
求问各位前辈怎么解决这个问题?
关于MFC菜单栏的问题
答案:2 mip版
解决时间 2021-02-22 12:00
- 提问者网友:〖舉燈向ηáη〗
- 2021-02-22 08:15
最佳答案
- 二级知识专家网友:柒夏锦年
- 2021-02-22 09:33
方法很多。。你可以直接用m_wndMenuBar 替换成你的menu ID 。还有就是 搜索m_wndMenuBar 注销掉它所有的相关代码。在使用你自己的menu。。
全部回答
- 1楼网友:繁华初下,心已空
- 2021-02-22 09:45
新建一个对话框,在对话框上点击右键,选择建立类向导,为对话框建立一个新的类如ctdlg。一定要包含这个类的头文件。在响应函数里
ctdlg tdlg;
tdlg.domodal;
我要举报
如以上问答内容为低俗/色情/暴力/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!
点此我要举报以上问答信息
推荐资讯