步骤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("猴菜单被按下!"));
}