MFC添加菜单 点击菜单项 弹出对话框
图1图2图3我想在图3那个对话框上面加入如图1的菜单然后点击菜单上的关于就弹出IDD_ABOUTBOX那个对话框我用的是VS2010究竟怎么弄???其实说白了就是就是像普...
图1
图2
图3
我想在图3那个对话框上面加入如图1的菜单 然后点击菜单上的关于就弹出IDD_ABOUTBOX那个对话框 我用的是VS2010 究竟怎么弄???
其实说白了就是就是
像普通软件这样弹出关于窗口 展开
图2
图3
我想在图3那个对话框上面加入如图1的菜单 然后点击菜单上的关于就弹出IDD_ABOUTBOX那个对话框 我用的是VS2010 究竟怎么弄???
其实说白了就是就是
像普通软件这样弹出关于窗口 展开
1个回答
展开全部
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 dlg;dlg.DoModal();//注意先创建该对话框资源并实体化为类,在主对话框CPP文件包含关于对话框的头文件。
5、注销资源
在对话框的OnDestroy函数中添加一下代码: DestroyMenu(m_hMenu1);
如:
菜单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 dlg;dlg.DoModal();//注意先创建该对话框资源并实体化为类,在主对话框CPP文件包含关于对话框的头文件。
5、注销资源
在对话框的OnDestroy函数中添加一下代码: DestroyMenu(m_hMenu1);
更多追问追答
追问
为最后要Destroy啊??
追答
因为前面m_hMenu1=LoadMenu,创建了,所以要回收。就和new之后要delete是一个意思。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询