在用Authorware制作多媒体作品时,我们希望展示窗口和普通窗口一样可以最小化、关闭、拖动。要实现这一目的,最简单的方法是在设置文件属性时, 保留Title Bar,但这样会影响作品的美观。如何制作自己的标题栏,使之和整个作品搭配协调,并且可以实现标题栏的功能呢?
下面让我们来做一个类似“金山毒霸2002”的窗口(如图1)。将“金山毒霸2002”的窗口截取下来,用Photoshop修改成你 满意的样子,保存作为作品的背景。再制作最小化和关闭的按钮图形以备用。
图1 类似“金山毒霸2002”的窗口
新建文件
在Authorware中新建一个文件。单击“Modify”菜单,选择“File —Properties…”单击。在弹出的“文件属 性”对话框中选择“Playback”标签,将“Size”项设定为“Variable”(可变的),取消“Title Bar”(标题栏)和“Menu Bar”(菜单栏)的复选。
窗口设置
拖一个“显示”图标到流程线上,命名为“背景”。将制作好的背景图片导入。
拖一个“计算”图标到流程线上,命名为“重设窗口大小”,双击,在其中输入程序:
ResizeWindow(593, 406)
MoveWindow(100, 100)
第一句的作用是将窗口大小设置成合适大小(以背景图片的大小为准)。第二句的作用是将窗口移动到屏幕的合适位置。
最小化及关闭功能
在流程线上放置一个“交互”图标,命名为“窗口控制”。在其右侧放置两个“计算”图标,响应类型都设为 “Button”(按钮响应),分别命名为“最小化”、“关闭”。在它们的分支属性对话框中“Scope”(响 应范围)项复选“Perpetual”(永久),“Branch”(分支)项选择“Return”(返回)。编辑这两个响应的按钮样 式,用制作好的图片代替默认的样式并调整其位置。
在“最小化”图标中输入程序:
ShowWindowAsync(WindowHandle, 6)
这里调用Windows API函数ShowWindowAsync实现将窗口最小化。保存时,系统会弹出对话框,提示选择此函数的来源,选择Winapi.u32。
在“关闭”图标中输入程序:
quit(0)
作用是退出本程序。
窗口移动功能
在这里我们要实现当用户拖动自定义标题栏时,窗口随之移动的功能。
在交互图标“窗口控制”右侧放置一个“组群”图标,响应类型为“Hot Spot”(热区响应),命名为“移动窗 口”,在分支属性对话框中“Scope”(响应范围)项复选“Perpetual”(永久),“Branch”(分支)项选择 “Return”(返回)。设定其响应范围包围背景的上部分,这就是我们的标题栏范围(如图2)。
图2 这就是我们的标题栏
双击“移动窗口”图标,在其中放置一个“交互”图标,命名为“move window”。在此交互图标右侧放置两个 “计算”图标,响应类型都为“Conditional”(条件响应),响应条件分别为MouseDown和~MouseDown。设置MouseDown图 标分支的属性,“Automatic”为“When True”,“Branch”为“Try Again”。设置~ MouseDown图标分 支的属性,“Automatic”为“When True”,“Branch”为“Exit Interaction”。
在MouseDown图标中输入程序:
ReleaseCapture()
SendMessage( WindowHandle, 161, 2, 0)
这里同样是调用Windows API函数实现窗口可拖动的功能。当系统提示选择这两个函数的来源时,选择Winapi.u32。
~MouseDown图标内容为空。
整个程序就完成了,最后的流程如图3。
我们看一下最后的效果。单击“最小化”按钮可将窗口最小化到任务栏,在任务栏上单击可恢复;单击“关闭”按钮可退出本 程序;拖动自定义的标题栏可移动窗口的位置。达到了预期的效果。
图3 这个程序的流程图
以上程序在Windows 98 SE、Authorware 6.0环境下通过。