关于菜单项的删除
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);
}
[解决办法]