MFC基于对话框的项目,如何添加菜单栏?
VC中,怎样才能为对话框增加菜单栏?
刚看到网友介绍的简单方法:
1、添加菜单资源
在resourceview视图中右击选择insert,添加一个菜单资源例如名称为:IDR_MENU1,同时设定好响应的菜单项
2、你打开你要添加菜单的对话框,然后右键->属性->常规 里面有个”菜单“ 下拉框,然后选好你刚刚做好的菜单IDR_MENU1!
然后运行编译就可以看到了哦
到这里,编译运行的时候就可以看到窗口中已经有菜单了.
后续可以自行设置菜单的响应函数。以下是跟菜单和子菜单相关的其他常用操作
网上找到一个很好的帖子,关于如何为对话框添加菜单栏,解释得比较详细和清楚
这个是传送门http://3140618.blog.163.com/blog/static/7451797200911235331704/
以下是原文内容:
点击菜单View-->ClassWizard,在message map选项卡中选择我们要响应的菜单ID_MENUITEM1,然后选
择COMMAND消息,双击添加到member functions中,提示命名,命名后在member functions双击该函数,
编写响应动作
注销资源
在对话框的On
DestroyMenu(m_hMenu1);
关于禁用菜单或者子菜单
子菜单
CMenu * pMenu;
CMenu * pSubMenu;
pMenu=CMenu::FromHandle(m_hMenu1);//获得菜单栏的指针
pSubMenu=pMenu->GetSubMenu(1); //1表示从0开始的主菜单序号
pSubMenu->EnableMenuItem(ID_MENUITEM3,MF_GRAYED);//禁用
//ID_MENUITEM3表示子菜单的ID号,MF_GRAYED表示禁用并且为灰色
pSubMenu->EnableMenuItem(ID_MENUITEM3,MF_ENABLED);//启用
主菜单
CMenu * pMenu;
pMenu=CMenu::FromHandle(m_hMenu1);//获得菜单栏的指针
pMenu->EnableMenuItem(1,MF_BYPOSITION |MF_GRAYED);//禁用
//MF_BYPOSITION表示按序列查,从0开始,因为主菜单为popup类型,没有ID编号,只能用这中方式
pMenu->EnableMenuItem(1,MF_ENABLED);//启用
主菜单下的popup联级菜单(其实类似主菜单)
CMenu * pMenu;
CMenu * pSubMenu;
pMenu=CMenu::FromHandle(m_hMenu1);//获得菜单栏的指针
pSubMenu=pMenu->GetSubMenu(0);//获得主菜单序号
pSubMenu->EnableMenuItem(1,MF_BYPOSITION |MF_GRAYED);//禁用
//MF_BYPOSITION表示该主菜单下的第一个菜单,该菜单没有ID号,为popup类型