操作系统 程序设计 图形图像 媒体动画 机械电子 WEB开发 数据库 办公软件 路由技术 网络原理 网络架设 网络管理 认证培训
您的位置:计算机资讯网 >> 媒体动画 >> Authorware >> 实例技巧 -> 83.浅说Authorware中不规则窗口的实现
83.浅说Authorware中不规则窗口的实现
2004-10-13 16:10:05
>

 

 

    看腻了中规中矩的窗口,怎么办?

    这还不简单,换新的呗!

    在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:windowssystemgdi32.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:windowssystemUser32.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="http://www.computernews.com.cn/techimages/2004101304/load.jpg (1007 字节)" src="http://www.computernews.com.cn/techimages/2004101304/load.jpg" height="22" width="59">

3.单击按钮,这时会出现一个“Load function”对话框。

4.在“文件名(N):”文本框里输入“c:authorware 4Winapi.u32”(不要输入“”),将会弹出如下的“Custom functions in winapi.u32”对话框。

5.从函数的下拉选项中选定“ShowWindow”函数,单击“Load”按钮。“ShowWindow”函数成功地载入Authorware应用程序。

    二、定制“最大化”、“最小化”、“关闭”等按钮

   有关按钮的外观处理,这里不再赘述;您可以视情形需要选用“Button”、“Hot spot”或是“Hot Object” 交互方式,这里,只把按钮中执行相应动作的代码给出:

   “最大化”: ShowWindow(WindowHandle,3)

  “最小化”: ShowWindow(WindowHandle,2)

   “关闭”:Quit()

 

转自:不详 作者:未知 关闭
加入收藏 推荐给好友 打印本文
内容为网上收集,并不代表本站同意或者赞同其观点,如果有任何版权,内容问题,请联系本站,我们将在第一时间处理.
查询
关键字
搜索范围
热点专题
服务
计算机资讯网 | 联系方式 | 广告服务 | 意见留言 | 友情链接 | 网站地图 | 设为首页