在Authorware中实现自定义标题栏

王朝other·作者佚名  2008-05-21
宽屏版  字体: |||超大  

在用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环境下通过。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有