MFC动态创建菜单

	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();


效果图:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值