动态创建菜单
1:在对话框中定义菜单对象CMenu m_MainMenu;在初始化函数中使用CreateMenu()创建菜单
2:对于每个层次定义一个临时惨淡变量popMenu,调用CreatePopMenu()方法创建弹出式菜单。
3:调用m_MainMenu对象的AppendMenu()将popMenu弹出式菜单插入到m_MainMenu中,
这就完成了一个顶层菜单的创建
4调用popMenu的AppendMenu()方法创建菜单项
注意:在从低层次转到高层次时需要调用Detach()方法分离菜单句柄,
5利用SetMenu()设置对话框菜单,千万别忘记这一步
6:在对话框消息映射部分添加命令消息映射宏,使相应的方法与命令ID关联
只需添加ON_COMMAND(菜单的ID,函数名)就可以了
Example
/*在初始化函数中*/
m_MainMenu.CreateMenu(); //创建菜单
CMenu popMenu; //定义一个弹出式菜单
popMenu.CreatePopupMenu(); //创建弹出式菜单
m_MainMenu.AppendMenu(MF_POPUP,(UINT)popMenu.m_hMenu,"系统");
CMenu subMenu;
subMenu.CreateMenu();//再次创建弹出式菜单
popMenu.AppendMenu(MF_POPUP,(UINT)subMenu.m_hMenu,"系统登录");
subMenu.AppendMenu(MF_STRING,ID_ADMINILOGIN,"管理员登录");
subMenu.AppendMenu(MF_SEPARATOR,0,"");//创建分隔条
subMenu.AppendMenu(MF_STRING,ID_COMMONLOGIN,"普通用户登录");
popMenu.Detach();//分离菜单句柄
popMenu.CreatePopupMenu();//重新创建弹出式菜单
m_MainMenu.AppendMenu(MF_STRING,(UINT)popMenu.m_hMenu,"帮助");
SetMenu(&m_MainMenu); //设置对话框菜单
BEGIN_MESSAGE_MAP(CDymanicMenuDlg, CDialog)
//{{AFX_MSG_MAP(CDymanicMenuDlg)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
//}}AFX_MSG_MAP
ON_COMMAND(ID_ADMINILOGIN,OnAdminiLogin)
ON_COMMAND(102,OnCommonLogin)//id也可以用数值表示
END_MESSAGE_MAP()
分享到:
相关推荐
在win32下动态创建菜单栏,很不错的资料呀
易语言源码动态创建菜单.rar
PB动态创建菜单........PB动态创建菜单........
dephi 动态创建菜单 指定菜单单击事件 将菜单实例加到主菜单中
本实例可以实现动态创建菜单的功能。运行程序,选择文件-新建命令的样式,在窗体中可以添加菜单的插入
动态创建菜单.rar动态创建菜单.rar 动态创建菜单.rar
易语言动态创建菜单.rar 易语言动态创建菜单.rar 易语言动态创建菜单.rar 易语言动态创建菜单.rar 易语言动态创建菜单.rar 易语言动态创建菜单.rar
动态创建菜单menustrip教程 pdf
C#反射动态创建菜单
从配置文件动态创建菜单
本部分包含VC菜单制作实例程序,有两大块: 1)动态创建菜单 2)建立带图标的菜单 非常实用,都是经过编译运行验证的可用代码
delphi 动态创建菜单实例 ,这个是我自己测试通过的代码用于delphi 7中。
反射,自定义特性,动态创建菜单,调用方法
易语言动态创建菜单,可响应事件12.e
动态创建菜单.zip易语言项目例子源码下载动态创建菜单.zip易语言项目例子源码下载 1.合个人学习技术做项目参考 2.适合学生做毕业设计参考 3.适合小团队开发项目参考
DynamicMenu动态创建菜单 C#,菜单,数据库,XML
在程序的运行期间通过创建菜单类对象,向窗口菜单中添加菜单项,也可删除菜单项。
计算机软件-编程源码-Delphi2005_动态创建菜单.zip