Функция GUISetOnEvent

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


GUISetOnEvent

Указывает на функцию, которая должна выполниться при нажатии на системные кнопки.

GUISetOnEvent ( specialID, "function" [, winhandle ] )

Параметры

specialID Смотрите Таблицу системных ID ниже.
function Имя вызываемой функции.
winhandle [необязательный] Дескриптор окна возвращаемый функцией GUICreate() (по умолчанию предыдущее используемое окно).

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

Успех:Возвращает 1.
Ошибка:Возвращает 0.

Примечания

Функции OnEvent вызываются только при включенной опции GUIOnEventMode установленной в 1, при использовании этого режима GUIGetMsg() не используется.

Вы не можете зарегистрировать функцию, которая использует параметры

Если опция GUIEventOptions установлена в 1, то кнопки Свернуть, Развернуть, Восстановить не будут выполнять никаких действий, кроме простого уведомления.

Если вместо имени функции указана пустая строка "" , то предыдущая функция становится отключенной от элемента управления.

    Таблица специальных идентификаторов (ID)
Специальные IDОписание
$GUI_EVENT_CLOSEЗакрыть окно (либо по определённым кнопкам или системному меню).
$GUI_EVENT_MINIMIZEСвернуть окно.
$GUI_EVENT_RESTOREВосстановить окно.
$GUI_EVENT_MAXIMIZEРазвернуть на весь экран.
$GUI_EVENT_MOUSEMOVEКурсор мыши переместился.
$GUI_EVENT_PRIMARYDOWNПервичная кнопка мыши была нажата (левая если не переназначено).
$GUI_EVENT_PRIMARYUPПервичная кнопка мыши была отпущена (левая если не переназначено).
$GUI_EVENT_SECONDARYDOWNВторичная кнопка мыши была нажата (правая если не переназначено).
$GUI_EVENT_SECONDARYUPВторичная кнопка мыши была отпущена (правая если не переназначено).
$GUI_EVENT_RESIZEDИзменён размер окна.
$GUI_EVENT_DROPPEDВыполнена операция "перетащить и бросить" (Drag&Drop). Макросы @GUI_DragId, @GUI_DragFile и @GUI_DropId используются для возврата идентификаторов / файлов соответствующим элементам.

См. также

GUIOnEventMode (Опция), GUIEventOptions (Опция), GUICtrlSetOnEvent, GUIGetMsg

Пример

#include <GUIConstantsEx.au3>

Example()

Func Example()
    Opt("GUICoordMode", 2)
    Opt("GUIResizeMode", 1)
    Opt("GUIOnEventMode", 1)

    GUICreate("Родительское окно")
    GUISetOnEvent($GUI_EVENT_CLOSE, "SpecialEvents")
    GUISetOnEvent($GUI_EVENT_MINIMIZE, "SpecialEvents")
    GUISetOnEvent($GUI_EVENT_RESTORE, "SpecialEvents")

    GUICtrlCreateButton("OK", 10, 30, 50)
    GUICtrlSetOnEvent(-1, "OKPressed")

    GUICtrlCreateButton("Отмена", 0, -1)
    GUICtrlSetOnEvent(-1, "CancelPressed")

    GUISetState(@SW_SHOW)

    ; Обычное ожидание в цикле
    While 1
        Sleep(10)
    WEnd
EndFunc

Func OKPressed()
    MsgBox(4096, "Нажата кнопка OK", "ID=" & @GUI_CtrlId & " WinHandle=" & @GUI_WinHandle & " CtrlHandle=" & @GUI_CtrlHandle)
EndFunc

Func CancelPressed()
    MsgBox(4096, "Нажата кнопка Отмена", "ID=" & @GUI_CtrlId & " WinHandle=" & @GUI_WinHandle & " CtrlHandle=" & @GUI_CtrlHandle)
EndFunc

Func SpecialEvents()

    Select
        Case @GUI_CtrlId = $GUI_EVENT_CLOSE
            MsgBox(4096, "Нажата кнопка закрытия", "ID=" & @GUI_CtrlId & " WinHandle=" & @GUI_WinHandle)
            Exit

        Case @GUI_CtrlId = $GUI_EVENT_MINIMIZE
            MsgBox(4096, "Сворачивает окно", "ID=" & @GUI_CtrlId & " WinHandle=" & @GUI_WinHandle)

        Case @GUI_CtrlId = $GUI_EVENT_RESTORE
            MsgBox(4096, "Восстанавливает окно", "ID=" & @GUI_CtrlId & " WinHandle=" & @GUI_WinHandle)

    EndSelect

EndFunc