原作者:xhyxsl <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

      本人学习AutoIt还不到一年,可以说是新手,但在学习过程中得到众多AutoIt爱好者(konandel888COCO)的大力帮助和有益启发。下文的编写纯属个人理解,深入学习还得看原文帮助文件。

AutoIt 发展至今 ( 已到 V3.10 ) ,在 GUI( 图形界面 ) 方面有不同程度的改进和提高。从目前函数语句增加情况看,设计一些比较复杂的应用程序应当说是不成问题的。我预测随着 AutoIt 版本进一步提高, GUI 的设计功能将大大增强,到时 GUI 设计的编写器就如同 VB6 图形设计编写器一定能为我们设计程序应用提供极大的方便。

    AutoIt 中的 GUI 是我们设计 AutoIt 可视应用程序的重要组成部分,也是基础部分。下面,我将从窗口的设计讲起。   

    (一)窗口的设计

    GUI 设计中,窗口的设计是最基本的。窗口一般由窗口名、窗口外形、窗口背景颜色和按钮等组成。

1、窗口设计的完整原文语句。 GUICreate ( "title" [, width [, height [, left [, top [, style [, exStyle [, parent]]]]]]] )

窗口的基本语句是

       GUICreate(" 窗口的设计 ", 200, 100)

在窗口的基本语句中:“窗口的设计”就是窗口文件名;“ 200 ”就是窗口的宽;“ 100 ”就是窗口的高。下面请看例子:

2、简单窗口的脚本(红色部分)与注解。

#include <GUIConstants.au3> #include < 外部脚本名称 >

#include 包括所需的常量和变量。写任何 GUI 脚本都必须在脚本最前面写入 #include <GUIConstants.au3> 语句

GUICreate(" 我的窗口 ") 

默认时可不用标明宽与高,默认值一般是 400 400 。窗口的宽与高也可以使用变量来设计。如: $width=500 , $height=500

例子如下:

$width=500

$height=500

GuiCreate(" 我的窗口 ",$width,$height,(@DesktopWidth-$width)/2, (@DesktopHeight-$height)/2)

注解: (@DesktopWidth-$width)/2 为屏幕左边到窗口的距离; (@DesktopHeight-$height)/2 为屏幕顶部到窗口的距离。屏幕 宽与高是与显示器的分辩率一致的。另外还有风格函数可以继续往后加入,但意义不是很大。对于初学者建议用简单的方法。如 GuiCreate(" 我的窗口 ",200,100) 。要注意的是,窗口 宽与高的值不要大于显示器的分辩率值。

GUISetState (@SW_SHOW)

显示窗口。如果 @SW_SHOW 改为 @SW_HIDE 则窗口隐藏。详情见帮助文件: GUISetState 项中的参数。也可什么都不加, 默认值是显示窗口。即: GUISetState ()

下面是运行对话框直至窗口关闭的循环语句。

While 1

    $msg = GUIGetMsg()

    If $msg = $GUI_EVENT_CLOSE Then ExitLoop

Wend

如图:
<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /> 2005613232543.png

下面是宽与高为 200 100 的窗口图片:

2005613232741.png

由此可见, GUI 设计窗口并非那么复杂,只要设置好几个关键值就可以了。

3、窗口背景色彩的设计。

窗口背景色彩设计主要运用下列语句来解决。

背景色彩设计完整原文语句是: GUISetBkColor ( background [, winhandle] )

用法: GUISetBkColor 语句必须紧跟 GUICreate 语句。括号里的参数可自行设定。实例:

#include <GUIConstants.au3>
GUICreate ("My GUI")

GUISetBkColor ( 0xE0FFFF )   ; 设置自己喜欢的色彩
GUISetState  ()      
While 1
    $msg = GUIGetMsg()
    If $msg = $GUI_EVENT_CLOSE  Then ExitLoop
Wend

2005613232919.png2005613233035.png

GUISetBkColor ( 0xE0FFFF ) 语句中“ 0xE0FFFF ”是色彩值;“ E0FFFF ”色彩代码。改变色彩只要改变代码即可。上图中的色彩代码分别是“ E0FFFF ”和“ FF0033 ”。

4、窗口按钮的设计。

设计按钮是为了达到控制与应用的目的。设计按钮的完整语句是:

GUICtrlCreateButton ( "text", left, top [, width [, height [, style [, exStyle]]]] )

可以看出按钮语句是由“按钮名、按钮与窗口左边距、按钮与窗口顶边距、按钮形状的宽、按钮形状的高、按钮的外形风格”等组成。

下面是按钮不同参数的图形:

2005613233128.png200561323321.png

左图的按钮语句是:

GUICtrlCreateButton ("OK",  10, 30, 50)

GUICtrlCreateButton ( "Cancel", 60, 30, 50)

右图的按钮语句是:

GUICtrlCreateButton ("OK",  10, 30, 50)

GUICtrlCreateButton ( "Cancel", 10, 60, 50)

从以上两组按钮语句看,要比原文按钮语句简单的多,这也是 GUI 易学的奥妙。当然,复杂的语句也是可以掌握好的。如按钮与图标叠加的设计,只要加上相应的语句即可。完整脚本如下:

#include <GUIConstants.au3>

GUICreate (" 我的图标按钮 ",400,200)

GUISetBkColor (0xE0FFFF)  ; 设置自己喜欢的色彩

GUICtrlCreateButton (" 我的图标按钮 ", 10,20,40,40, $BS_ICON)

GUICtrlSetImage (-1, "shell32.dll",43)

GUICtrlCreateButton (" 我的图标按钮 ", 80,20,40,40, $BS_ICON)

GUICtrlSetImage (-1, "shell32.dll",31)

GUICtrlCreateButton (" 我的图标按钮 ", 150,20,40,40, $BS_ICON)

GUICtrlSetImage (-1, "shell32.dll",22)

GUISetState  ()     

While 1

    $msg = GUIGetMsg()

    If $msg = $GUI_EVENT_CLOSE  Then ExitLoop

Wend

脚本窗口图形如下图

  2005613233345.png

当然,按钮还可以叠加图片等,只要设置好函数语句就可以了。设置的方法是在 GUICtrlCreateButton (" 我的图标按钮 ", 10,20,40,40, $BS_ICON) 语句中,改变 $BS_ICON 即可。详情见帮助文件: GUI Control Styles项中的Push Button Styles参数。 以上仅仅是把按钮设计出来了,但真正要起作用还需要修改和增加语句。关于按钮的控制与应用将在第二讲中详细解答。
以上内容可以转载,但必须注明。如果存在错误,请告之!!![email]xhyxsl@126.com[/email]