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();
效果图: