基 础 函 数 参 考


GUICtrlCreateIcon

创建图标(Icon)控件.

GUICtrlCreateIcon ( 文件名, 图标名, 左距, 顶距 [, 宽度 [, 高度 [, 样式 [, 扩展样式]]]] )

参 数

文件名 图标文件名称.
图标名 图标名称, 如果图标文件含有多个图标, 则指定图标标识符(序号,使用负数), 否则使用 -1.
左距 控件左侧的位置. 若此值为 -1, 则根据 GUICoordMode 的设置计算左侧位置.
顶距 控件上方的位置. 若此值为 -1, 则根据 GUICoordMode 的设置计算顶部位置.
宽度 [可选参数] 控件的宽度(默认 32).
高度 [可选参数] 控件的高度(默认 32).
样式 [可选参数] 控件的样式. 查看附录 GUI 控件样式表.

默认样式 ( -1) : $SS_NOTIFY
强制样式 : $WS_TABSTOP, $SS_ICON
扩展样式 [可选参数] 控件的扩展样式. 查看附录 扩展样式表.

返 回 值

成功: 返回控件标识符(控件ID).
失败: 返回 0.

备 注

设置或者修改控件信息, 参考 GUICtrlUpdate....

要更新图标, 可使用 GUICtrlSetImage

图标ID 可以引用图标的组号. 使用 Resource hacker (资源修改软件)能得到这个值.

要在默认样式上添加新样式, 可使用 BitOr($GUI_SS_DEFAULT_ICON, 新样式,...) 语句.

使用上面列出的值必须将 #include <StaticConstants.au3> 语句写入脚本中.

默认大小为 $GUI_DOCKSIZE.

如果使用正数, 将引用图标的名称.
如果使用负数, 将引用基于 1 的图标索引. 一些 DLL 文件的资源名称只能使用负数提取.

相 关 函 数

GUICoordMode (Option), GUICtrlSetImage, GUICtrlUpdate..., GUIGetMsg

函 数 示 例


#include <GUIConstantsEx.au3>

Example1()
Example2()


; 示例 1 ---------------------------
Func Example1()
    GUICreate("我的图标 GUI", 250, 250)

    GUICtrlCreateIcon("shell32.dll", 10, 20, 20)
    GUICtrlCreateIcon(@WindowsDir & "\cursors\horse.ani", -1, 20, 40, 32, 32)
    GUICtrlCreateIcon("shell32.dll", 7, 20, 75, 32, 32)
    GUISetState()

    ; 运行 GUI, 直到 GUI 被关闭
    While 1
        Local $msg = GUIGetMsg()

        If $msg = $GUI_EVENT_CLOSE Then ExitLoop
    WEnd
    GUIDelete()
EndFunc   ;==>Example1



; 示例 2 ---------------------------
Func Example2()
    Local $iOldOpt, $n1, $n2, $a, $b
    $iOldOpt = Opt("GUICoordMode", 1)

    GUICreate("我的图标动画 GUI", 350, 74, -1, -1)
    GUICtrlCreateLabel("", 331, 0, 1, 74, 5)
    $n1 = GUICtrlCreateIcon(@WindowsDir & "\cursors\aero_working.ani", -1, 0, 0, 32, 32); 译注: Win7
    $n2 = GUICtrlCreateIcon(@WindowsDir & "\cursors\aero_working_l.ani", -1, 0, 40, 32, 32); 译注: Win7
   
    ;$n1 = GUICtrlCreateIcon(@WindowsDir & "\cursors\dinosaur.ani", -1, 0, 0, 32, 32);译注: 支持 Win xp
    ;$n2 = GUICtrlCreateIcon(@WindowsDir & "\cursors\horse.ani", -1, 0, 40, 32, 32);译注: 支持 Win xp

    GUISetState(@SW_SHOW)

    $a = 0
    $b = 0
    While ($a < 300) And ($b < 300)
        $a = $a + Int(Random(0, 1) + 0.5)
        $b = $b + Int(Random(0, 1) + 0.5)
        GUICtrlSetPos($n1, $a, 0)
        GUICtrlSetPos($n2, $b, 40)
        Sleep(20)
    WEnd
    Sleep(1000)
    Opt("GUICoordMode", $iOldOpt)
EndFunc   ;==>Example2

provider with jb51.net (unicode)