首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

关于菜单项的删除,该如何处理

2012-03-29 
关于菜单项的删除CMenu* mmenu AfxGetMainWnd()-GetMenu()if (mmenuNULL){AfxMessageBox(无菜单)

关于菜单项的删除
CMenu* mmenu = AfxGetMainWnd()->GetMenu();
if (mmenu==NULL)
{
AfxMessageBox("无菜单");
}
CMenu* submenu = mmenu->GetSubMenu(0);
if (submenu==NULL)
{
AfxMessageBox("无菜单");
}
submenu->DeleteMenu(1, MF_BYPOSITION);


我使用上面的代码删除一个菜单项,在MainFrame中写了以上代码,结果不起作用?不知道什么原因

[解决办法]
Debug下调试一下函数执行成功?什么环境?VS2008SP1?
[解决办法]
看看DeleteMenu的参数有没有问题,你要是删除第一个菜单项,那么DeleteMenu的第一个参数应该是0。

我建议DeleteMenu最好写成 DeleteMenu(IDM_XXX, MF_BYCOMMAND);这种形式.
[解决办法]
submenu->DeleteMenu
submenu有没有关联的menu item?

[解决办法]
DrawMenuBar
[解决办法]
删除系统菜单
CMenu *pMenu = AfxGetMainWnd()-> GetSystemMenu(FALSE); 
UINT uCount = pMenu-> GetMenuItemCount(); 
for (UINT i = uCount-1 ; i >=0 ; i--) 

pMenu-> DeleteMenu(i, MF_BYPOSITION); 
}

[解决办法]

探讨
CMenu* mmenu = AfxGetMainWnd()->GetMenu();
if (mmenu==NULL)
{
AfxMessageBox("无菜单");
}
CMenu* submenu = mmenu->GetSubMenu(0);
if (submenu==NULL)
{
AfxMessageBox("无菜单");
}
submenu->DeleteMenu(……

热点排行