vs2010用MFC添加菜单问题

vs2010用MFC添加菜单问题,第1张

函数原型是 CMenu*GetMenu()const

返回一个CMenu对象指针,你最好使用前检查一下返回值,然后再使用 -> *** 作。

从你描述来看,可能在OnCreate时应该尚未创建菜单,所以返回的是个NULL

要在主菜单中添加d出菜单,可以在资源编辑器的菜单中直接编辑,不需要代码的。

try this code:

BOOL CMainFrame::OnShowPopupMenu(CMFCPopupMenu* pMenuPopup)

{

if(pMenuPopup)

{

int iIndex = -1

CMFCPopupMenuBar* pMenuBar = pMenuPopup->GetMenuBar()

if (!CMFCToolBar::IsCustomizeMode()&&(NULL != pMenuBar) &&(iIndex=pMenuBar->CommandToIndex(ID_EDIT_PASTE))>=0)

{

pMenuPopup->InsertSeparator(iIndex+1)

pMenuPopup->InsertItem(CMFCToolBarMenuButton(IDS_EDIT_MYITEM_1,NULL,-1,_T("&MyItem 1")),iIndex+2)

pMenuPopup->InsertItem(CMFCToolBarMenuButton(IDS_EDIT_MYITEM_1 + 1,NULL,-1,_T("&MyItem 2")),iIndex+3)

}

}

return TRUE

}

首先你要确定GetMenu()函数是否返回了正确的菜单指针,很有可能这个是野指针或者空指针,导致后面调用出错;

注释后需要确定重新编译了再运行,如果还出现一样的结果,只能证明是下面的代码 有问题,或者是你模仿的有问题,或者是他原来的代码有问题,计算机是不会骗人的。

这个需要你添加断点跟踪看才能准确的分析和定位问题,也是一种基本的能力


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11591016.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存