Функция GUICtrlCreateButton

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


GUICtrlCreateButton

Создаёт кнопку в GUI.

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

Параметры

text Текст кнопки.
left Координата левого края. Если -1 - тогда координата в соответствии с GUICoordMode.
top Координата верхнего края. Если -1 - тогда координата в соответствии с GUICoordMode.
width [необязательный] Ширина элемента (по умолчанию устанавливается по длине текста).
height [необязательный] Высота элемента (по умолчанию устанавливается по высоте текста).
style [необязательный] Стиль элемента. Смотрите Стили элементов GUI в приложении.

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

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

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

Примечания

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

Кнопка может отображать иконку или рисунок, для этого используйте стили $BS_ICON или $BS_BITMAP. Используйте GUICtrlSetImage для установки рисунка.

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

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

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

См. также

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

Пример

#include <GUIConstantsEx.au3>
#include <ButtonConstants.au3>
#include <WindowsConstants.au3>

#NoTrayIcon ; не показывать иконку в трее

Local $Button_1, $Button_2, $Button_3, $Button_4, $Button_5, $msg, $hGUI
$hGUI = GUICreate("GUI с кнопкой") ; Создаёт окно в центре экрана

Opt("GUICoordMode", 2)
$Button_1 = GUICtrlCreateButton("Запуск блокнота", 10, 20, 120)
$Button_2 = GUICtrlCreateButton("Тестовая кнопка", -1, 0) ; относительные координаты
GUICtrlSetBkColor(-1, 0x0) ; Назначение цвета кнопке приводит к потере события WM_NOTIFY и не обрабатывает быстрые многократные нажатия
GUICtrlSetColor(-1, 0xFFFFFF)

$Button_3 = GUICtrlCreateButton("-", -1, 10, 22, 22, $BS_ICON)
GUICtrlSetImage(-1, @SystemDir & '\shell32.dll', 42, 0)

$Button_4 = GUICtrlCreateButton("-", -1, 10, 40, 40, $BS_ICON + $BS_FLAT)
GUICtrlSetImage(-1, "shell32.dll", 46, 1)

$Button_5 = GUICtrlCreateButton("кнопка с рисунком bmp", -1, 10, 160, 160, $BS_PUSHLIKE + $BS_BITMAP)
GUICtrlSetImage(-1, "oemlogo.bmp")

GUISetState() ; показывает созданное окно

; Запускается цикл опроса GUI до тех пор пока окно не будет закрыто
While 1
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            ExitLoop
        Case $Button_1
            Run('notepad.exe') ; будет запущен или открыт блокнот
        Case $Button_2
            GUICtrlSetData($Button_2, 'Новый текст')
        Case $Button_3
            GUICtrlSetImage($Button_3, @SystemDir & '\shell32.dll', 22, 0)
        Case $Button_4
            MsgBox(4096, 'Тест', 'Нажата кнопка со стилем плоской кнопки', 0, $hGUI); Демонстрация действия при нажатии Button 4
        Case $Button_5
            MsgBox(4096, 'Тест', 'Нажата кнопка с BMP рисунком', 0, $hGUI)
    EndSwitch
WEnd