MFC动态创建菜单

来源:互联网 发布:入骨相思知不知 编辑:程序博客网 时间:2024/05/16 01:35
CMenu menuFile;menuFile.CreatePopupMenu();menuFile.AppendMenu(MF_STRING, ID_MENU_FILE_OPEN, _T("Open"));menuFile.AppendMenu(MF_STRING, ID_MENU_FILE_NEW, _T("New"));menuFile.AppendMenu(MF_STRING, ID_MENU_FILE_SAVE, _T("Save"));CMenu menuEdit;menuEdit.CreatePopupMenu();menuEdit.AppendMenu(MF_STRING, ID_MENU_EDIT_COPY, _T("Cut"));menuEdit.AppendMenu(MF_STRING, ID_MENU_EDIT_COPY, _T("Copy"));menuEdit.AppendMenu(MF_STRING, ID_MENU_EDIT_PASTE, _T("Past"));CMenu menuCpp;menuCpp.CreatePopupMenu();menuCpp.AppendMenu(MF_STRING, ID_MENU_TOOL_OLLDBG, _T("Olldbg"));menuCpp.AppendMenu(MF_STRING, ID_MENU_TOOL_WINDBG, _T("Windbg"));menuCpp.AppendMenu(MF_STRING, ID_MENU_TOOL_SPYPP, _T("Spy++"));menuCpp.AppendMenu(MF_STRING, ID_MENU_TOOL_DEPENDS, _T("Depends"));CMenu menuTools;menuTools.CreatePopupMenu();menuTools.AppendMenu(MF_POPUP, (UINT)menuCpp.Detach(), _T("Debug"));CMenu menuMain;menuMain.CreateMenu();menuMain.AppendMenu(MF_POPUP, (UINT)menuFile.Detach(),_T("&File"));menuMain.AppendMenu(MF_POPUP, (UINT)menuEdit.Detach(),_T("&Edit"));menuMain.AppendMenu(MF_POPUP, (UINT)menuTools.Detach(),_T("&Toos"));SetMenu(&menuMain);// 下面语句的作用:因为menuMain是局部变量,将菜单从CMenu对象上卸载下来// 原因:menuMain的作用域超出范围后,不至于菜单栏被释放了menuMain.Detach();


效果图:


0 0