[专题五] 制作windows标准菜单方法(5-2)
5.2 利用budmenu.u32制作windows“特色”菜单
利用tmscontrols.u32制作的windows标准菜单有个局限性,就是只能制作最多两级的弹出式子菜单,而制作三级以上的子菜单它就“黔驴技穷”了,下面再介绍一个制作windows标准弹出式菜单的扩展函数:budmenu.u32。budmenu.u32目前的最新版本是1.2 beta1,和tmscontrols.u32比较,budmenu.u32只提供弹出式菜单的支持,但是它有一些自己的“特色”:可以制作bmp图片菜单(1.2 beta 1版本才支持),真正支持任意多级弹出式子菜单,而且菜单项支持checked(unchecked)属性,快捷键设置,更酷的是允许用户修改菜单项的显示文字,心动不如行动呀,马上把“入住” budmenu.u32的函数大员介绍给大家:
创建弹出式菜单句柄
menu := mcreatepopupmenu()
添加菜单项
ok := mappendmenu( menu, flags , menuid , menutext )
设置消息钩子与authorware通信
ok := mmenuhookon( windowhandle )
显示菜单,x,y为显示菜单的坐标值
ok := mtrackpopupmenu( menu , flags , x , y , reserved , windowhandle , reserved )
判断菜单项的选择
lastmenuid := mgetlastmenuid()
设置菜单项的选中属性,check参数有mf_checked、mf_unchecked属性
ok := mcheckmenuitem( menu , id , check )
检测并获取菜单项的选中状态属性
ok := mgetmenustate( menu , id , flags )
设置菜单项的允许/禁止,enable参数有mf_enabled、mf_disabled、mf_grayed属性
ok := menablemenuitem( menu , id , enable )
删除菜单项或者子菜单
ok := mdeletemenu( menu , id , flags )
修改存在菜单项的显示文字
ok := mmodifymenu( menu , id , flags , id , menutext )
设置菜单项的alt快捷键,例如&introduction快捷键就为alt+i,菜单显示效果为introduction
ok := mappendmenu( selectmenu , 0 , 100 , "&introduction" )
导入bmp图片文件作为菜单项,这是1.2beta1版本的新功能
mloadbitmapfile( thefile )
从外部ucd导入bmp图片资源,budmenu.u32内部提供了8个小图片,如下图5.7所示。
mloadbitmapresource( resourcefile, resourcenumber )
添加bmp图片菜单项
mappendbitmapmenu( menu , flags , id , bitmap)
设置菜单项的checked标志为指定的bmp图片资源
msetmenuitembitmaps(menu, id, flags, bitmapunchecked, bitmapchecked)
释放bmp图片资源
mfreebitmapresource( bitmap )
释放bmp图片文件
mfreebitmapfile( bitmap )
图5.7 budmenu.u32自带的bmp图片资源
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器