vs2010用MFC添加菜单问题

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

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

注释后需要确定重新编译了再运行,如果还出现一样的结果,只能证明是下面的代码

有问题,或者是你模仿的有问题,或者是他原来的代码有问题,计算机是不会骗人的。

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

1、添加菜单资源 在resourceview视图中右击选择insert,添加一个菜单资源IDR_MENU1,同时设定好响应的菜单项,例如:

菜单1 菜单2

子菜单1(ID_MENUITEM1)子菜单3(ID_MENUITEM3)

子菜单2(ID_MENUITEM2)子菜单4(ID_MENUITEM4)

2、在对话框中添加该菜单

先增成员变量HMENU m_hMenu1然后在初始化函数OnInitDialog()添加一下代码:m_hMenu1=LoadMenu(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_MENU1))//导入资源,创建菜单::SetMenu(this->GetSafeHwnd(),m_hMenu1)//添加到对话框

3、添加子菜单响应函数

点击菜单View-->ClassWizard,在message map选项卡中选择我们要响应的菜单ID_MENUITEM1,然后选择COMMAND消息,双击添加到member functions中,提示命名,命名后在member functions双击该函数,

4、编写响应动作

在3里面添加的响应函数中,CAboutDialog dlgdlg.DoModal()//注意先创建该对话框资源并实体化为类,在主对话框CPP文件包含关于对话框的头文件。

5、注销资源

在对话框的OnDestroy函数中添加一下代码: DestroyMenu(m_hMenu1)


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存