下面让我们来做一个类似%26ldquo;金山毒霸2002%26rdquo;的窗口(如图1)。将%26ldquo;金山毒霸2002%26rdquo;的窗口截取下来,用Photoshop修改成你 满足的样子,保存作为作品的背景。再制作最小化和关闭的按钮图形以备用。

图1 类似%26ldquo;金山毒霸2002%26rdquo;的窗口
新建文件
在Authorware中新建一个文件。单击%26ldquo;Modify%26rdquo;菜单,选择%26ldquo;File %26mdash;Properties%26hellip;%26rdquo;单击。在弹出的%26ldquo;文件属 性%26rdquo;对话框中选择%26ldquo;Playback%26rdquo;标签,将%26ldquo;Size%26rdquo;项设定为%26ldquo;Variable%26rdquo;(可变的),取消%26ldquo;Title Bar%26rdquo;(标题栏)和%26ldquo;Menu Bar%26rdquo;(菜单栏)的复选。
窗口设置
拖一个%26ldquo;显示%26rdquo;图标到流程线上,命名为%26ldquo;背景%26rdquo;。将制作好的背景图片导入。
拖一个%26ldquo;计算%26rdquo;图标到流程线上,命名为%26ldquo;重设窗口大小%26rdquo;,双击,在其中输入程序
ResizeWindow(593, 406)
MoveWindow(100, 100)
第一句的作用是将窗口大小设置成合适大小(以背景图片的大小为准)。第二句的作用是将窗口移动到屏幕的合适位置。
最小化及关闭功能
在流程线上放置一个%26ldquo;交互%26rdquo;图标,命名为%26ldquo;窗口控制%26rdquo;。在其右侧放置两个%26ldquo;计算%26rdquo;图标,响应类型都设为 %26ldquo;Button%26rdquo;(按钮响应),分别命名为%26ldquo;最小化%26rdquo;、%26ldquo;关闭%26rdquo;。在它们的分支属性对话框中%26ldquo;Scope%26rdquo;(响 应范围)项复选%26ldquo;Perpetual%26rdquo;(永久),%26ldquo;Branch%26rdquo;(分支)项选择%26ldquo;Return%26rdquo;(返回)。编辑这两个响应的按钮样 式,用制作好的图片代替默认的样式并调整其位置。
在%26ldquo;最小化%26rdquo;图标中输入程序
ShowWindowAsync(WindowHandle, 6)
这里调用Windows API函数ShowWindowAsync实现将窗口最小化。保存时,系统会弹出对话框,提示选择此函数的来源,选择Winapi.u32。
在%26ldquo;关闭%26rdquo;图标中输入程序
quit(0)
作用是退出本程序。
窗口移动功能
在这里我们要实现当用户拖动自定义标题栏时,窗口随之移动的功能。
在交互图标%26ldquo;窗口控制%26rdquo;右侧放置一个%26ldquo;组群%26rdquo;图标,响应类型为%26ldquo;Hot Spot%26rdquo;(热区响应),命名为%26ldquo;移动窗 口%26rdquo;,在分支属性对话框中%26ldquo;Scope%26rdquo;(响应范围)项复选%26ldquo;Perpetual%26rdquo;(永久),%26ldquo;Branch%26rdquo;(分支)项选择 %26ldquo;Return%26rdquo;(返回)。设定其响应范围包围背景的上部分,这就是我们的标题栏范围(如图2)。

图2 这就是我们的标题栏
双击%26ldquo;移动窗口%26rdquo;图标,在其中放置一个%26ldquo;交互%26rdquo;图标,命名为%26ldquo;move window%26rdquo;。在此交互图标右侧放置两个 %26ldquo;计算%26rdquo;图标,响应类型都为%26ldquo;Conditional%26rdquo;(条件响应),响应条件分别为MouseDown和~MouseDown。设置MouseDown图 标分支的属性,%26ldquo;Automatic%26rdquo;为%26ldquo;When True%26rdquo;,%26ldquo;Branch%26rdquo;为%26ldquo;Try Again%26rdquo;。设置~ MouseDown图标分 支的属性,%26ldquo;Automatic%26rdquo;为%26ldquo;When True%26rdquo;,%26ldquo;Branch%26rdquo;为%26ldquo;Exit Interaction%26rdquo;。
在MouseDown图标中输入程序
ReleaseCapture()
SendMessage( WindowHandle, 161, 2, 0)
这里同样是调用Windows API函数实现窗口可拖动的功能。当系统提示选择这两个函数的来源时,选择Winapi.u32。
~MouseDown图标内容为空。
整个程序就完成了,最后的流程如图3。
我们看一下最后的效果。单击%26ldquo;最小化%26rdquo;按钮可将窗口最小化到任务栏,在任务栏上单击可恢复;单击%26ldquo;关闭%26rdquo;按钮可退出本 程序;拖动自定义的标题栏可移动窗口的位置。达到了预期的效果。

图3 这个程序的流程图
以上程序在Windows 98 SE、Authorware 6.0环境下通过。
