分享
 
 
 

浅说Authorware中不规则窗口的实现

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

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

这还不简单,换新的呗!

在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()

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有