读书人

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

发布时间: 2012-03-29 12:53:12 作者: rapoo

关于菜单项的删除
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(……

读书人网 >VC/MFC

热点推荐