书城导航   首页 > 电脑书籍 > Authorware > Authorware实战开发专题(5-2)
 
[专题五] 制作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图片资源
 

chinawx.COM 下一页
 
书艺文学网 www.shu1.com 版权所有