MFC-5动态更新窗体菜单1
2010-07-04 20:14
295 查看
#include <afxwin.h>//必须加载此文件,该文件中定义了所有MFC相关的类 #include "resource.h" class MyFrame:public CFrameWnd { private: CMenu MainMenu,*SysMenu,*PopMenu,*SubMenu; COLORREF color; public: MyFrame() { Create(NULL,//产生标准窗口 "Menu",//窗口标题 WS_OVERLAPPEDWINDOW|WS_VISIBLE,//窗口样式 rectDefault,//窗口大小 NULL,//指向父窗口的指针 MAKEINTRESOURCE(IDR_SMENU)//使用菜单的标志 ); SysMenu = GetSystemMenu(FALSE);//取得系统菜单 SysMenu->AppendMenu(IDR_INSMENU,MF_SEPARATOR); SysMenu->AppendMenu(MF_STRING|MF_CHECKED,IDR_INSMENU,"insert by me"); color = RGB(255,0,0); } afx_msg void OnSwitchMenu() { CMenu InsMenu; InsMenu.LoadMenu(IDR_INSMENU); MainMenu.LoadMenu(IDR_MAINMENU); MainMenu.AppendMenu(MF_POPUP,(UINT)InsMenu.m_hMenu,"Color Menu"); SubMenu= MainMenu.GetSubMenu(1); SubMenu->AppendMenu(MF_SEPARATOR); SubMenu->InsertMenu(IDM_CreateItem,MF_BYCOMMAND|MF_STRING,IDM_InsertItem,"Insert a Item"); SubMenu->InsertMenu(IDM_CreateItem,MF_BYCOMMAND|MF_POPUP,(UINT)InsMenu.m_hMenu,"insert a sub menu"); //SetCheck();//设置应该被选择的菜单项 SubMenu->InsertMenu(IDM_CreateItem,MF_BYCOMMAND|MF_SEPARATOR); InsMenu.Detach();//将菜单资源与菜单对象分离 SetMenu(&MainMenu); } DECLARE_MESSAGE_MAP() }; BEGIN_MESSAGE_MAP(MyFrame,CFrameWnd) ON_COMMAND(IDR_SwitchMenu,OnSwitchMenu) END_MESSAGE_MAP() class MyApp:public CWinApp { public: BOOL InitInstance() { CFrameWnd *Frame = new MyFrame; m_pMainWnd = Frame; Frame->ShowWindow(SW_SHOW); return true; } } a_app;
#define IDR_MAINMENU 101 #define IDR_SMENU 102 #define IDR_POPMENU 103 #define IDR_INSMENU 104 #define ID_RED 40001 #define ID_RED_GREEN 40002 #define ID_RED_BLUE 40003 #define ID_RED_BLACK 40004 #define IDM_CREATEITEM 40005 #define ID_FILE 40005 #define ID_DYNAMICMENU 40006 #define ID_Menu 40007 #define ID_DYNAMICMENU_INSERTASUBMENU 40008 #define ID_COLORMENU 40009 #define ID_COLORMENU_RED 40010 #define ID_COLORMENU_GREEN 40011 #define ID_COLORMENU_BLUE 40012 #define ID__POPITEM1 40013 #define ID__POPITEM2 40014 #define ID_FILE_EXIT 40015 #define IDR_SwitchMenu 40016 #define IDM_CreateItem 40017 #define IDM_InsertItem 40018
相关文章推荐
- MFC---如何利用菜单更新机制动态更新菜单
- VS2010的MFC动态创建菜单
- MFC动态菜单全攻略
- 重拾MFC小细节之动态更新对话框背景图片
- C++ MFC中的CMenu---动态添加菜单/菜单项
- MFC学习之旅—动态更改菜单
- (MFC) VS2010、VS2012动态添加菜单
- MFC动态创建菜单
- MFC中的CMenu---如何动态添加菜单/菜单项、子菜单、右键菜单
- MFC 菜单名称修改后还是显示以前的--无法更新
- 实现Web页面中级联菜单的设计/实现动态加载列表框/实现自动刷新页面/实现Web页面的局部动态更新/实现自动完成功能
- MFC 单文档中动态添加菜单项和响应菜单事件
- 根据数据库表动态添加菜单及打开窗体
- 动态创建菜单,menustrip,根据权限显示菜单,控制菜单可用,反射,给窗体传值,反射对象传值【转】
- mfc让菜单动态变灰
- MFC窗体滑动、缩放、渐变动态效果的实现
- MFC动态菜单全攻略
- 动态更新菜单项与处理菜单选择
- MFC菜单命令更新机制
- MFC菜单的命令更新机制