vs2015/mfc动态创建菜单

本文介绍了如何在VS2015的MFC应用程序中动态创建菜单。首先创建一个基于对话框的程序,然后在对话框头文件声明CMenu对象,接着在资源文件定义命令ID,再在 OnInitDialog 方法中生成菜单,通过消息映射宏将命令ID与处理函数关联,并实现消息处理函数以响应菜单操作。

步骤1.创建一个基于对话框的程序。

2.在对话框的头文件中声明一个CMenu类对象m_Menu;

3.在资源头文件(Resource.h),定义命令ID:

<span style="font-size:12px;">#define ID_MENUCAT            1001      
#define ID_MENUDOG            1002 
#define ID_MENUMONKEY         1003</span>

4.在对话框的源文件中的OnInItDialog方法中创建菜单,代码如下:

<span style="font-size:12px;">        m_Menu.CreateMenu();            //创建菜单窗口
	CMenu m_PopupMenu;              //定义菜单类对象
	m_PopupMenu.CreatePopupMenu();  //创建弹出菜单窗口
	m_Menu.AppendMenuW(MF_POPUP, (UINT)m_PopupMenu.m_hMenu, _T("动物"));//插入菜单
	m_PopupMenu.AppendMenuW(MF_POPUP, ID_MENUCAT, _T("猫"));            //插入子菜单
	m_PopupMenu.AppendMenuW(MF_POPUP, ID_MENUDOG, _T("狗"));            //插入子菜单
	m_PopupMenu.AppendMenuW(MF_POPUP, ID_MENUMONKEY, _T("猴"));         //插入子菜单
	m_PopupMenu.AppendMenuW(MF_POPUP, -1, _T("植物"));                  //插入兄弟菜单
	m_PopupMenu.Detach();                                               //分离菜单句柄
	SetMenu(&m_Menu);                                                   //将菜单和窗口进行关联
	m_Menus.LoadMenuW(IDR_MENU1);                                       //加载菜单资源</span>
<span style="font-size:12px;">5.在对话框的头文件中声明菜单的消息处理函数:</span>
<pre class="cpp" name="code">        afx_msg void OnMenuCat();
	afx_msg void OnMenuDog();
	afx_msg void OnMenuMonkey();

6.在对话框的源文件中添加消息映射宏,将命令ID关联到消息处理函数中:

	ON_COMMAND(ID_MENUCAT,OnMenuCat)
	ON_COMMAND(ID_MENUDOG,OnMenuDog)
	ON_COMMAND(ID_MENUMONKEY,OnMenuMonkey)


7.在对话框源文件中添加消息处理函数的实现代码:

void CMenuDlg::OnMenuCat()
{
	MessageBox(_T("猫菜单被按下!"));
}
void CMenuDlg::OnMenuDog()
{
	MessageBox(_T("狗菜单被按下!"));
}
void CMenuDlg::OnMenuMonkey()
{
	MessageBox(_T("猴菜单被按下!"));
}




 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值