vs2010单文档工程中的菜单子项如何删除???

bazzi2011 2016-01-05 11:24:29
项目是vs2010的MFC单文档工程,我的需求是根据配置文件动态加载菜单项,故而需要在OnCreate()中动态删减一些菜单子项。
vs2010中的菜单类换成了CMFCMenuBar,以前的CMenu那套貌似不起作用了。

1.CMenu原来的方法,不起作用,GetMenu为空,得不得主菜单句柄。

GetMenu()->GetSubMenu(0)->DeleteMenu(ID_FILE_NEW, MF_BYCOMMAND );


2.我在网上查到的CMFCMenuBar转CMenu的方法也不管用。

CMenu *pMenu = CMenu::FromHandle(m_wndMenuBar.GetDefaultMenu());
pMenu->GetSubMenu(0)->DeleteMenu(ID_FILE_NEW, MF_BYCOMMAND );
m_wndMenuBar.CreateFromMenu(pMenu->GetSafeHmenu(), TRUE, TRUE);



请问应该如何对单文档工程的菜单进行删除?(或者一系列操作如添加、修改等)???
...全文
125 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
Yofoo 2016-01-06
  • 打赏
  • 举报
回复
这个方法应该是可以的, 但是如果在 CMainFrame::OnCreate 这里操作是没意义的, 因为后面还会再次加载菜单, 你这修改的就没意义了 可以在CMainFrame.LoadFrame 之后修改菜单

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧