
2、先在资源视图下选择添加资源,选择菜单
CMenu
m_menu
m_menu.loadMenu(你添加菜单资源的ID);
SetMenu(&m_menu)
VS2010的MFC对话框程序中添加菜单栏的过程,我大致分了这五步。一、将Menu加入Resource视图中
在WorkSpace中的Resource视图下,在任意一个文件夹图标上,右击选择Insert(插入)选项,在d出的对话框中选择Menu以后,再点击,new按钮,菜单就会添加成功了,但是现在还没有完成,还不能进行编译,因为现在的菜单时空的,在编译的时候会被清除的。
二、用菜单编辑器添加菜单栏及菜单项
菜单添加成功后,菜单编辑器自动打开,可以在其中添加菜单栏及菜单项,比较简单。
三、将菜单加载到你的对话框
第一步中添加一个菜单项,这是菜单就真正的加到了你的工程中了,接下来就是如何将菜单加载到你的对话框中了。
打开你新加入的菜单项,单击“项目”-->“添加现有项”,在这里选择已有的类,就是你要为其添加菜单的对话框的类,例如,***Dlg.cpp。然后确定。
四、在相应的文件中添加代码
打开对话框头文件***Dlg.h,声明CMenu 变量,例如m_Menu
打开***Dlg.cpp 文件,在***Dlg::OnInitDlg()中加入如下语句:
m_Menu.LoadMenu(IDR_MENU1) // IDR_MENU1为你加入的菜单的ID,在Resource视图的Menu文件夹下可以找到
SetMenu(&m_Menu)
这样就OK了,调试一下,菜单就已经出现在对应的对话框中。
五、利用向导生成菜单消息响应函数
选择项目下的类向导,选择类名为”***Dlg.cpp”,在“命令”选项卡下的“对象ID(B)”中,选择各子菜单项的对应的ID,然后在“消息(S)”中双击COMMAND消息。
这时会d出对话框类,你可以更改对应子菜单项的函数处理名,然后点击确定。菜单消息响应函数生成完毕,加入你需要的代码。
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)
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)