




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Authorware实战开发专题之制作Windows标准菜单方法(2 时间:2007-09-30来源:汕大4U2V工作室作者:发布人:点击:次关键字:迅雷Google Baidu Authorware实战专题 5.2 利用Budmenu.u32制作Windows“特色”菜单利用tMsControls.u32制作的Windows标准菜单有个局限性,就是只能制作最多两级的弹出式子菜单,而制作三级以上的子菜单它就“黔驴技穷”了,下面再介绍一个制作Windows标准弹出式菜单的扩展函数: Budmenu.u32。Budmenu.u32目前的最新版5.2 利用Budmenu.u32制作Windows“特
2、色”菜单创建弹出式菜单句柄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参数有M
3、F_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 ,
4、 ID , Flags , ID , MenuText 设置菜单项的Alt快捷键,例如&Introduction快捷键就为Alt+I,菜单显示效果为Introductionok := mAppendMenu( SelectMenu , 0 , 100 , &Introduction 导入BMP图片文件作为菜单项,这是1.2Beta1版本的新功能mLoadBitmapFile( theFile 从外部UCD导入BMP图片资源,Budmenu.u32内部提供了8个小图片,如下图5.7所示。mLoadBitmapResource( resourceFile, resourceNumber 添加BMP
5、图片菜单项mAppendBitmapMenu( Menu , Flags , ID , Bitmap设置菜单项的Checked标志为指定的BMP图片资源mSetMenuItemBitmaps(Menu, ID, Flags, BitmapUnchecked, BitmapChecked释放BMP图片资源mFreeBitmapResource( bitmap 释放BMP图片文件mFreeBitmapFile( bitmap 图5.7 Budmenu.u32自带的BMP图片资源Budmenu.u32扩展函数是基于Windows API函数开发的Authorware扩展函数,因此利用它来制作弹出式菜
6、单的时候,首先必须对一些固定变量进行声明赋值,它们的名称和值列表如下:MF_POPUP := 16MF_BYCOMMAND := 0MF_BYPOSITION := 1024MF_SEPARATOR := 2048MF_ENABLED := 0MF_GRAYED := 1MF_DISABLED := 2MF_UNCHECKED := 0MF_CHECKED := 8MF_USECHECKBITMAPS := 512MF_STRING := 0MF_BITMAP := 4MF_OWNERDRAW := 256MF_MENUBARBREAK := 32MF_MENUBREAK := 64MF_UN
7、HILITE := 0MF_HILITE := 128对Budmenu.u32函数有一些了解后,我们马上开工,制作一个有“特色”的Windows标准下拉菜单及鼠标右键弹出式菜单。范例的程序流程图如下图5.8所示: 图5.8 Budmenu.u32范例程序流程图(1变量定义如图5.8的程序流程中,“变量定义”计算图标的代码如上述的固定变量列表,主要是对一些必须的固定变量进行赋值(2为创建下拉弹出式菜单编写代码在“创建菜单”计算图标写入如下代码:-以下代码定义菜单标识IDMN_LOGIN:=100MN_RELOGIN:=101MN_LOGOUT:=102MN_WIN:=200MN_Unix:=20
8、1MN_MEDIA:=202MN_DB:=203MN_ADOBE:=300MN_MM:=301MN_AW:=400MN_DR:=401MN_FL:=402MN_PR:=403MN_PS:=404MN_BMP:=500MN_HELP:=501-以下代码创建系统登陆菜单SYSMenu:=mCreatePopupMenu(mAppendMenu(SYSMenu,0,MN_LOGIN,登陆(&L mAppendMenu(SYSMenu,0,MN_RELOGIN,注销(&R mAppendMenu(SYSMenu,0,MN_LOGOUT,退出(&E-以下代码创建三级子菜单TubMenu1:=mCreat
9、ePopupMenu(TubMenu2:=mCreatePopupMenu(mAppendMenu(TubMenu1,0,MN_AW,AuthorwareTabCtrl+AmAppendMenu(TubMenu1,0,MN_DR,Director TabCtrl+D mAppendMenu(TubMenu1,0,MN_FL,Flash TabCtrl+FmAppendMenu(TubMenu2,0,MN_PS,&PhotoshopTabCtrl+P mAppendMenu(TubMenu2,0,MN_PR,&PremIEre TabCtrl+E mCheckMenuItem(TubMenu1,
10、MN_AW,MF_CHECKED -设置菜单项为Checked mEnableMenuItem(TubMenu2,MN_PR,MF_GRAYED -设置菜单项为灰色不可用-以下代码创建二级子菜单SubMenu:=mCreatePopupMenu(mAppendMenu(SubMenu,MF_POPUP,TubMenu1,&MacromediamAppendMenu(SubMenu,MF_POPUP,TubMenu2,&Adobe-创建版面选择菜单BBSMenu:=mCreatePopupMenu(mAppendMenu(BBSMenu,0,MN_WIN,Windows NTmAppendMen
11、u(BBSMenu,0,MN_UNIX,Unix LinuxmAppendMenu(BBSMenu,MF_SEPARATOR,0,mAppendMenu(BBSMenu,MF_POPUP,SubMenu,MultimediamAppendMenu(BBSMenu,MF_SEPARATOR,0,mAppendMenu(BBSMenu,0,MN_DB,DataBasemCheckMenuItem(BBSMenu,MN_DB,MF_CHECKED-创建系统帮助菜单AboutMenu := mCreatePopupMenu(bmPic:=mLoadBitmapFile(FileLocation4U2V
12、.bmp -导入BMP图片作为菜单mAppendMenu(AboutMenu,0,MN_HELP, 关于.mAppendBitmapMenu(AboutMenu,0,MN_BMP,bmPic(3显示菜单为显示图标“工具栏”导入一个工具栏的背景图,接着添加交互“显示菜单”如图5.8所示。在交互“显示菜单”的右边添加“系统登陆”按钮响应交互分支,它们的二级程序流程图如下图5.9所示。 图5.9 “系统登陆”按钮响应交互分支流程图为了达到更加逼真和一致的效果,按钮最好自己设计成为和工具栏背景一样的风格,然后导入为自定义按钮。计算图标“show popup”的代码如下:mTrackPopupMenu(
13、SYSMenu,0,ResponseLeft系统登陆+WindowLeft,ResponseTop系统登陆+ResponseHeight系统登陆+WindowTop,0,WindowHandle,0计算图标“get menu ID”的代码如下:LastMenuID:=mGetLastMenuID(计算图标“unhighlight menu”的代码如下:Checked系统登陆:=FALSE同理建立“版面选择”和“系统帮助”两个按钮相应分支,最简单的方法是拷贝“系统登陆”分支然后进行相应的修改。(4菜单的交互设计Budmenu.u32是基于WINDOWS API开发的扩展函数,要与Authorwa
14、re程序通信需要设置消息钩子,图5.8中的计算图标“设置hook on”就起到这个作用,其计算代码为:mMenuHookOn(WindowHandle。需要注意的是,在程序结束的时候必须用函数mMenuHookOff(停止消息钩子,否则会导致一些意想不到的麻烦。图5.8流程图中的“菜单交互”设计了一系列交互,其中“RightMouseDown”条件响应分支为产生鼠标右键弹出式菜单的交互分支(设置为永久交互,其代码如下:mTrackPopupMenu(BBSMenu,0,CursorX+WindowLeft,CursorY+WindowTop,0,Wind owHandle,0LastMenuI
15、D:=mGetLastMenuID(“LastMenuID 0”条件响应分支是检测用户选择的具体菜单项,其二级流程图如下图5.10所示。其中“Set menu”交互就是相应的菜单项条件响应分支,例如“系统登陆”菜单中的“登陆”菜单项的交互条件就设置为: LastMenuID=MN_LOGIN,其它的分支都类似的设置。 图5.10 LastMenuID 0条件响应分支二级流程图这里要注意一点的是每次交互完毕后都必须初始化LastMenuID值,即设置其值为“0”,否则程序不会自动更新纪录用户下次的菜单选择交互,因此在计算图标“reset LastMenuClicked”中编写代码:LastMenuID:=0,这一点和使用tMsControls.u32是截然不同的概念,使用过程中切记!“修改”按钮响应分支是修改菜单项的分支,核心代码如下,具体就不阐述了。mModifyMenu(AboutMenu,MN_HELP,MF_BYCOMMAND,MN_HELP,EntryText最后是“退出”按钮响应分支设计,其代码如下:mMenuHookOff( -
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 社会单位和重点场所消防安全管理规范 电动汽车充电站
- 2025家电维修服务协议书合同范本
- 《无人机介绍》课件
- 《飞机引擎冷却系统》课件 - 全面探讨飞机引擎冷却系统的设计与优化
- 主动脉夹层的临床护理
- 设计四年级试卷及答案
- 三中语文考试卷子及答案
- 2025陕西煤业化工建设(集团)有限公司招聘(4人)笔试参考题库附带答案详解
- 合同的履行第04章
- 纺织设备科技创新与产业升级考核试卷
- 黑臭水系治理工程监理大纲
- 温度显示与报警课程设计
- 国有土地使用权的评估与出让管理
- 延髓梗死护理查房课件
- 2023年标准化工程师考试真题模拟汇编(共402题)
- 8.1陶瓷器及宋代五大名窑(全国导游基础知识-第五版-)
- 中等职业学校语文课程标准(2020年版)(word精排版)
- 托管专项施工方案
- 汽车产品可靠性工程框架
- 风电项目开发流程教学课件
- 泌尿外科前列腺增生一病一品
评论
0/150
提交评论