看腻了中规中矩的窗口,怎么办?
这还不简单,换新的呗!
在Authorware中要想创建特殊的不规则窗口,看上去似乎很难。如果我说,半小时之后您也能做得到,这似乎不可思议。可是事实就是如此!不信,您不妨试一试。以下给出笔者在Win98、Authorware4.0中实现不规则窗口的具体过程,其中倒是需要用上Windows动态链接库文件user32.dll以及gdi32.dll中的几个函数,它们是:SetWindowRgn、CreateRectRgn、CreateRoundRectRgn、CreateEllipticRgn。
OK!Enjoy it!(^_^)
一、启动您的Authorware4.0或者Authorware 5 Attain。
二、新建一个文件(Authorware会自动把它取名为Untitled)。
三、载入所需的函数。
1.单击快捷工具栏中的按钮
,打开“Functions”对话框。2.单击“Functions”对话框里“Category:”组合框的按钮,在弹出的列表框中,单击选中“[Untitled]”项。
3.单击按钮,这时会出现一个“Load function”对话框。
4.在“文件名(N):”文本框里输入“c:\windows\system\gdi32.dll”(不要输入“”),将会弹出如下的对话框。
5.参看下图,“Function Name:”处输入:“CreateEllipticRgn”, “Arguments:”处输入:“long,long,long,long”, “Return:”处输入:“long”, “Description:”处输入:“CreateEllipticRgn(Left,Top,Right,Bottom)”。
6.单击
按钮,可以在对话框的底部看到提示:“Successfully Loaded CreateEllipticRgn()”,说明函数CreateEllipticRgn()已经成功地载入Authorware应用程序了(实际上,函数并未真正载入应用程序,而只是有一条链接被连接到了包含代码的文件中)。7.然后,
“Function Name:”处输入:“CreateRectRgn”,
“Arguments:”处输入:“long,long,long,long”,
“Return:”处输入:“long”,
“Description:”处输入:“CreateRectRgn(Left,Top,Right,Bottom)”。
单击
按钮,可以在对话框的底部看到提示:“Successfully Loaded CreateRectRgn()”,说明已经成功地载入了函数CreateRectRgn()。8.在
“Function Name:”处输入:“CreateRoundRectRgn”,
“Arguments:”处输入:“long,long,long,long,long,long”,
“Return:”处输入:“long”,
“Description:”处输入:“CreateRoundRectRgn(Left,Top,Right,Bottom,Width,Height)”。
单击
按钮,可以在对话框的底部看到提示:“Successfully Loaded CreateRoundRectRgn()”,说明函数CreateRoundRectRgn()已经被成功地装载了。9.单击
按钮。在“Load function”对话框的“文件名(N):”文本框里输入“c:\windows\system\User32.dll”。10.在弹出的对话框里,
“Function Name:”处输入:“SetWindowRgn”,
“Arguments:”处输入:“long,long,long”,
“Return:”处输入:“long”,
“Description:”处输入:“SetWindowRgn(hWnd,Rgn,Bool)”。
11.单击
按钮,可以在对话框的底部看到提示:“Successfully Loaded SetWindowRgn()”,说明函数SetWindowRgn()已经被成功地载入Authorware应用程序。12.单击
按钮。在“Load function”对话框中,单击“取消”按钮。至此,所需的函数已经全部装载完毕。四、保存文件为:“不规则窗口.a4p”。
五、通过简单地编程,轻易实现“椭圆形窗口”、“矩形窗口”、“圆角矩形窗口”。流程图如下:
以下是图标中的代码以及具体说明:
在“变量赋值”图标中,
hWnd:=WindowHandle----将当前的应用程序窗口句柄WindowHandle赋值给变量hWnd。
Bool:=True----将变量Bool赋值为True。
Left、Top、Right、Bottom、Width、Height----分别代表不规则窗口左上角的x坐标、y坐标、右下角的x坐标、y坐标、用于产生圆角的椭圆宽度、用于产生圆角的椭圆高度(均以象素点为单位),您可以根据当前显示器的分辨率来设定相应的值。
“椭圆形窗口”图标中,代码如下:
Rgn:=CreateEllipticRgn(Left,Top,Right,Bottom)----创建一个由参数Left、Top、Right、Bottom指定的椭圆形区域,并将该区域的句柄返回给参数Rgn。
SetWindowRgn(hWnd,Rgn,Bool)----将由参数Rgn指定的椭圆形区域设定为参数hWnd所指定的窗口。
“矩形窗口”图标中,代码如下:
Rgn:=CreateRectRgn(Left,Top,Right,Bottom)----创建一个由参数Left、Top、Right、Bottom指定的矩形区域,并将该区域的句柄返回给参数Rgn。
SetWindowRgn(hWnd,Rgn,Bool)----将由参数Rgn指定的矩形区域设定为参数hWnd所指定的窗口。
“圆角矩形窗口”图标中,代码如下:
Rgn:=CreateRoundRectRgn(Left,Top,Right,Bottom,Width,Height)----创建一个由参数Left、Top、Right、Bottom、Width、Height指定的圆角矩形区域,并将该区域的句柄返回给参数Rgn。
SetWindowRgn(hWnd,Rgn,Bool)----将由参数Rgn指定的圆角矩形区域设定为参数hWnd所指定的窗口。
六、调试运行 运行一下,点按相应的按钮,即可获得相应的不规则窗口。
如果要想实现圆形窗口,只要令Left=Top而且Right=Bottom就可以办到。
上述示例可以创建椭圆形状的窗口、圆形窗口、矩形窗口、圆角矩形窗口;您只要用图像处理软件制作相应的窗口界面,就可以轻松定制出风格独特、与众不同的展示窗口。当然您还可以自制弧形的标题条、菜单条,定制“最大化”、“最小化”、“关闭”等按钮,从而实现对窗口操纵自如。有关定制“最大化”、“最小化”、“关闭”等按钮的实现,需要用到Winapi.u32中的“ShowWindow”函数,顺带介绍如下:
一、载入所需的Winapi函数
1.单击快捷工具栏中的按钮,打开“Functions”对话框。
2.单击“Functions”对话框里“Category:”组合框的按钮,在弹出的列表框中,单击选中“[Untitled]”项。 IMG id=_x0000_i1045 alt="load.jpg (1007 字节)" src="load.jpg" height="22" width="59">
3.单击按钮,这时会出现一个“Load function”对话框。
4.在“文件名(N):”文本框里输入“c:\authorware 4\Winapi.u32”(不要输入“”),将会弹出如下的“Custom functions in winapi.u32”对话框。
5.从函数的下拉选项中选定“ShowWindow”函数,单击“Load”按钮。“ShowWindow”函数成功地载入Authorware应用程序。
二、定制“最大化”、“最小化”、“关闭”等按钮
有关按钮的外观处理,这里不再赘述;您可以视情形需要选用“Button”、“Hot spot”或是“Hot Object” 交互方式,这里,只把按钮中执行相应动作的代码给出:
“最大化”: ShowWindow(WindowHandle,3)
“最小化”: ShowWindow(WindowHandle,2)
“关闭”:Quit()