VC菜单的动态创建实例解析.doc
文本预览下载声明
VC菜单的动态创建
实例解析
第一步:在resouse.h中写
#define ID_MENU1 1001
#define ID_MENU2 1002
#define ID_MENU3 1003
定义三个子菜单的ID
第二步:定义一个在对话框类的成员变量中定义一个菜单类对象;
CMenu m_menu;
第三步:在对话框类中OnInitDialog()方法中写一下代码:
m_menu.CreateMenu();
CMenu m1;
m1.CreatePopupMenu();
m_menu.AppendMenu(MF_POPUP,(UINT)m1.m_hMenu,动物);
m1.AppendMenu(MF_STRING,ID_MENU1,狗);
m1.AppendMenu(MF_STRING,ID_MENU2,猫);
m1.AppendMenu(MF_STRING,ID_MENU3,猪);
SetMenu(m_menu);
CMenu m2;
m2.CreatePopupMenu();
m_menu.AppendMenu(MF_POPUP,(UINT)m2.m_hMenu,植物);
SetMenu(m_menu);
第四步:创建菜单响应的消息处理函数:
afx_msg void OnDog();
afx_msg void OnCat();
afx_msg void OnPig();
如图:
第五步:创建创建消息映射;
ON_COMMAND(ID_MENU1,OnDog)
ON_COMMAND(ID_MENU2,OnCat)
ON_COMMAND(ID_MENU3,OnPig)
分别将ID与响应函数相连接。
第六步:写响应函数
void CLrfDlg::OnDog()
{
MessageBox(可爱的小狗);
}
void CLrfDlg::OnCat()
{
MessageBox(可爱的小猫,菜单测试);
}
void CLrfDlg::OnPig()
{
MessageBox(可爱的小猪);
}
演示结果如图:
显示全部