Функция GUICtrlCreateIcon

         Описание функции


GUICtrlCreateIcon

Создаёт Icon в GUI.

GUICtrlCreateIcon ( filename, iconName, left, top [, width [, height [, style = -1 [, exStyle = -1 ]]]] )

Параметры

filename Путь к файлу с иконкой (ico, exe, dll).
iconName Имя ресурса, если файл содержит несколько иконок. Может использоваться порядковый номер в виде отрицательного числа. Иначе -1.
left Координата левого края. Если -1 - тогда координата в соответствии с GUICoordMode.
top Координата верхнего края. Если -1 - тогда координата в соответствии с GUICoordMode.
width [необязательный] Ширина элемента (по умолчанию 32).
height [необязательный] Высота элемента (по умолчанию 32).
style [необязательный] Стиль элемента. Смотрите Стили элементов GUI в приложении.

-1 - по умолчанию : $SS_NOTIFY
принудительный стиль : $WS_TABSTOP, $SS_ICON
exStyle [необязательный] Расширенный стиль элемента. Смотрите таблицу расширенных стилей.

Возвращаемое значение

Успех:Возвращает идентификатор (controlID) нового элемента.
Ошибка:Возвращает 0.

Примечания

Чтобы установить или изменить параметры элемента смотрите GUICtrlUpdate....

Для обновления иконки после отображения диалогового окна, используйте GUICtrlSetImage
iconID может ссылаться на номер иконки в ресурсе "icon group". Используйте Resource Hacker, чтобы узнать этот номер.

Чтобы объединить стили со стилем по умолчанию используйте BitOR($GUI_SS_DEFAULT_ICON, новый стиль,...).

Чтобы использовать параметры, указанные выше, вы должны включить в ваш скрипт #include <StaticConstants.au3>.

По умолчанию стиль изменения размеров $GUI_DOCKSIZE (не изменяется размер).

Переданное положительное число, будет ссылаться на строку, эквивалентно имени иконки.
Переданное отрицательное число эквивалентно порядковому номеру иконки. Некоторые Dll могут иметь иконки, извлекаемые только с отрицательными номерами.

См. также

GUICoordMode (Опция), GUICtrlSetImage, GUICtrlUpdate..., GUIGetMsg

Пример

#include <GUIConstantsEx.au3>

Example1()
Example2()

; Пример 1
Func Example1()
    Local $icon1, $icon2, $icon3, $msg

    GUICreate("Иконки в GUI", 250, 250)

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

    ; Запускается цикл опроса GUI до тех пор пока окно не будет закрыто
    While 1
        $msg = GUIGetMsg()
        Switch $msg
            Case $GUI_EVENT_CLOSE
                ExitLoop
            Case $icon1, $icon2, $icon3
                Exit
        EndSwitch
    WEnd
    GUIDelete()
EndFunc   ;==>Example1

; Пример 2
Func Example2()
    Local $iOldOpt, $icon1, $icon2, $hGUI, $a = 0, $b = 0
    $iOldOpt = Opt("GUICoordMode", 1)

    $hGUI = GUICreate("Состязание иконок GUI", 350, 74, -1, -1)
    GUICtrlCreateLabel("", 331, 0, 1, 74, 5)
    $icon1 = GUICtrlCreateIcon(@WindowsDir & "\cursors\dinosaur.ani", -1, 0, 0, 32, 32)
    $icon2 = GUICtrlCreateIcon(@WindowsDir & "\cursors\horse.ani", -1, 0, 40, 32, 32)

    GUISetState()

    While ($a < 300) And ($b < 300)
        $a += Random(0, 1, 1)
        $b += Random(0, 1, 1)
        GUICtrlSetPos($icon1, $a, 0)
        GUICtrlSetPos($icon2, $b, 40)
        Sleep(10)
    WEnd
    Opt("GUICoordMode", $iOldOpt)
    If $a > $b Then
        MsgBox(0, 'Результаты забега', 'Победил динозавр', 0, $hGUI)
    Else
        MsgBox(0, 'Результаты забега', 'Победила лошадка', 0, $hGUI)
    EndIf
EndFunc   ;==>Example2