本文转自百度空间---http://hi.baidu.com/xtwwz/blog/item/e11844fe58f9838658ee90aa.html
动态创建菜单:
1、定义菜单对象,调用CreateMenu方法创建菜单资源
CMenu m_Menu;
2、调用AppendMenu或InsertMenu方法创建菜单项,设置菜单文本和命令ID.
//创建空的菜单资源
m_Menu.CreateMenu();
//创建父菜单
m_Menu.AppendMenu(MF_STRING,-1,"系统");
//创建子菜单
CMenu subMenu;
subMenu.CreatePopupMenu();
subMenu.AppendMenu(MF_STRING,ID_MENUADD ,"信息添加");
subMenu.AppendMenu(MF_STRING,ID_MENUUPDATE ,"信息修改");
//创建一个父菜单,将子菜单作为父菜单的级联菜单
m_Menu.AppendMenu(MF_POPUP,(UINT)subMenu.m_hMenu,"基础信息");
//创建父菜单
m_Menu.AppendMenu(MF_STRING,-1,"库存管理");
//将菜单对象与菜单资源分离
subMenu.Detach();
//将菜单关联到对话框资源上
SetMenu(&m_Menu);
3、为菜单项关联命令消息处理函数:
A.在对话框类中添加一个消息处理函数;
afx_msg void AddInfo();
void CDynamiMenuDlg::AddInfo()
{
MessageBox("基础信息添加!","提示");
}
BEGIN_MESSAGE_MAP(CDynamiMenuDlg, CDialog)
//{{AFX_MSG_MAP(CDynamiMenuDlg)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_COMMAND(ID_MENUADD,AddInfo)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()