M_CreatePopupMenu() | 新建一个弹出式菜单 |
M_PopupUpMenu() | 弹出一个弹出式菜单 |
M_DestroyPopupMenu() | 卸载一个弹出式菜单 |
M_GetSelectedMenuItemIndex() | 获得用户当前所选择的菜单项目索引 |
M_GetSelectedMenuItemText() | 获得用户当前所选择的菜单项目标题 |
M_IsThereAPopupMenu() | 检查是否已经建立了一个弹出式菜单 |
M_SetMenuItemChecked() | 设置某一菜单项为选中状态 |
M_GetMenuItemChecked() | 获得某一菜单项是否为选中状态 |
M_SetMenuItemStatus() | 设置某一菜单项的状态为允许/禁止 |
M_GetMenuItemStatus() | 获得某一菜单项的允许/禁止状态 |
M_ChangeMenuItemIcon() | 动态改变某一菜单项的图标 |
M_ChangeMenuItemText() | 动态改变某一菜单项的标题 |
M_InsertMenuItem() | 动态插入一个新的自菜单项 |
M_AppendMenuItem() | 动态追加一个新的菜单项 |
M_RemoveMenuItem() | 动态删除一个菜单项 |
M_ResetMenuItemIndex() | 复位前一次菜单项选择状态,以备下一次新的选择 |
了解了上面的函数后,我们马上来熟悉它的图形菜单制作方法。和上面介绍的两个U32不同,ActiveM!.u32采用的是利用外部TXT列表文件创建菜单的方法,也就是说要产生菜单,必须事先编辑一个TXT菜单初始化信息列表文件,其具体格式如下(每个菜单项用5行表示):
菜单项的名称 | 即显示在菜单上的文字 |
菜单项的层次 | 1表示一级菜单,2表示二级菜单 |
菜单项的图标文件 | 即显示在菜单项左端的小图标,如该菜单项不需要图标,则该行留空 |
菜单项的状态 | 为1或0,表示该菜单项是正常可用的还是被禁止[灰色显示] |
菜单项的选中状态 | 为1或0,表示该菜单项是否被选中,被选中的菜单项左端有一个小勾,如果该菜单项包含图标,则图标被强化显示表示已经被选中 |
另外菜单项之间的分隔符[在菜单中显示为一条水平线]也是一个特殊菜单项,也需要占用以上5行,它的设置是:名称为一个短的减号"-",层次设置为其所在的实际层次,图标文件项留一空行[不是空格],其余两项设置为0。
了解TXT菜单列表文件的格式后,我们来制作一个ActiveM!.u32的菜单范例吧。首先我们编写菜单初始化信息列表文件(TXT文本),具体内容如下:
Windows Media Player 1
MenuList\Windows Media Player.ico
1
0
Favorites
1
MenuList\Favorites.ico
1
1
-
1
1
1
Game
1
1
0
Minesweeper
2
MenuList\Minesweeper.ico
1
0
Solitaire
2
1
1
其实菜单初始化信息文件类似一个资源连接列表,因此必须确保TXT文本中的ICON图标文件路径正确而且存在,否者将没法正常显示。
TXT存盘后,我们就可以在Authorware中利用ActiveM!.u32的M_CreatePopupMenu()函数创建菜单,例如菜单初始化信息文件命名为Menu.txt,存放路径为当前文件的MenuList文件夹下,则写法为M_CreatePopupMenu(WindowHandle,"MenuList\\Menu.txt"),然后用M_PopupUpMenu(0,0,0)函数就可以弹出菜单拉,具体效果如下图5.17所示:
图5.17利用ActiveM!.u32制作图形菜单
哇,是不是十分的酷?可是天下没有免费的午餐,ActiveM!.u32并不是一个免费的扩展函数库,需要注册购买,没有注册的共享版本只能使用80天,而且有版权说明窗口等限制。如果单单是为了制作菜单而购买一个ActiveM!.u32肯定是没有必要,毕竟实现的方法是多元化,动动脑子可以做的更好,何乐而不为呢?无论怎么说,ActiveM!.u32的确是一个功能强大的Authorware扩展函数,有兴趣的读者可以自行研究它的其它功能函数。
专题总结
制作Windows标准菜单方法当然不止上面的三种方法,例如我们可以模仿设计一系列和Windows标准菜单类似的图片然后再进行交互程序设计,可是这样的话肯定没有上面的利用第三方U32扩展开发菜单来的方便和更具有交互性,这里推荐tMsControls.u32和Budmenu.u32,因为它们是免费的,为什么不用呢J。当然如果你有多余的M的话,注册购买一个ActiveM!.u32也是值得的,支持国产软件嘛。
其实有编程能力的高手们不妨自己也来开发一个“特色”U32,相关的开发规范可以到Macromedia公司的主页上查找得到。
评论 {{userinfo.comments}}
{{child.content}}
{{question.question}}
提交