最近在看一个用MFC写的界面的项目的代码,在代码和界面中一直没有看到关于菜单控件是如何添加进对话框的,于是就百度了下。结果,与其它控件(Button等)添加的方式不一样;
VS2010的MFC对话框程序中添加菜单栏的过程大致分了这五步。
一、将Menu加入Resource视图中
在WorkSpace中的Resource视图下,在左边目录的任意位置上,先右键—->选择Insert Resource(插入资源)选项,在弹出的对话框中选择Menu以后,再点击,new按钮,菜单就会添加成功了,但是现在还没有完成,还不能进行编译,因为现在的菜单时空的,在编译的时候会被清除的。
二、用菜单编辑器添加菜单栏及菜单项
菜单添加成功后,菜单编辑器自动打开,可以在其中添加菜单栏及菜单项,比较简单。
三、将菜单加载到你的对话框
第一步中添加一个菜单项,这是菜单就真正的加到了你的工程中了,接下来就是如何将菜单加载到你的对话框中了。
打开你新加入的菜单项,单击“项目”–>“添加现有项”,在这里选择已有的类,就是你要为其添加菜单的对话框的类,例如,***Dlg.cpp。然后确定。
四、在相应的文件中添加代码
// 打开对话框头文件***Dlg.h,声明CMenu 变量,例如m_Menu;
//打开***Dlg.cpp 文件,在***Dlg::OnInitDlg()中加入如下语句
m_Menu.LoadMenu(IDR_MENU1); // IDR_MENU1为你加入的菜单的ID,在Resource视图的Menu文件夹下可以找到,如果代码提示中说IDR_MENU1没有定义的话(我遇到了这个问题,ID一样,但是提示没有定义,我是重新新建了一个工程就解决了)。
SetMenu(&m_Menu);
如果不出现奇葩问题的话这样就OK了,调试一下,菜单就已经出现在对应的对话框中。
五、为菜单下面的每个Item添加消息响应函数
第一步:在菜单项上面右键—->选择Add Event Handler,如下图
第二步:如下图,根据自己的要求,选择好类、定义好函数名即可。
按照上面的步骤来,就可以解决我们对话框中的菜单问题了
参考地址如下:http://lishiqiang1988.blog.163.com/blog/static/41147912201382104631547/
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文地址:http://blog.csdn.net/u010412719/article/details/47303011