在WorkSpace中的Resource视图下,在左边目录的任意位置上,先右键—->选择Insert Resource(插入资源)选项,在d出的对话框中选择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,
第二步:根据自己的要求,选择好类、定义好函数名即可。
方法有很多先说个最简单的
1. 在工程的资源里面加1个菜单和3个对话框(假设ID是IDR_MENU1, IDD_DIALOG1, IDD_DIALOG2, IDD_DIALOG3)
2. 在菜单添加要的选项, 对话框里面拖你要的控件
3. 在主对话框的OnInit函数里写以下代码
CMenu* menu = new CMenu
menu->LoadMenu(MAKEINTRESOURCE(IDR_MENU1))
this->SetMenu(menu)
到现在我们已经把菜单加到主对话框里了, 节下来是响应菜单项
4. 对menu的某一项右键, 添加一个COMMEND MESSAGE, 系统会自动生成一个函数, 在函数里面写以下代码
// TODO: Add your command handler code here
CDialog* dlg = new CDialog
dlg->Create(MAKEINTRESOURCE(IDD_DIALOG1))
dlg->ShowWindow(1)
5. 其他两项也一样的做法
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)