Defines a user function to be called when a system button is clicked.
GUISetOnEvent ( specialID, "function" [, winhandle] )
specialID | See the Special ID table below. |
function | The name of the user function to call. |
winhandle | [optional] Windows handle as returned by GUICreate() (default is the previously used window). |
Success: | 1. |
Failure: | 0. |
OnEvent functions are only called when Opt("GUIOnEventMode", 1) - when in this mode GUIGetMsg() is NOT used at all.
You can not call a function using parameters.
If Opt ("GUIEventOptions", 1) the minimize, restore and maximize button will not do any action on the window just a simple notification.
If the function is an empty string "" the previous user-defined is disabled.
Special ID table
Special Id | Comments |
---|---|
$GUI_EVENT_CLOSE | dialog box being closed (either by defined button or system menu). |
$GUI_EVENT_MINIMIZE | dialog box minimized with Windows title bar button. |
$GUI_EVENT_RESTORE | dialog box restored by click on task bar icon. |
$GUI_EVENT_MAXIMIZE | dialog box maximized with Windows title bar button. |
$GUI_EVENT_MOUSEMOVE | the mouse cursor has moved. |
$GUI_EVENT_PRIMARYDOWN | the primary mouse button was pressed. |
$GUI_EVENT_PRIMARYUP | the primary mouse button was released. |
$GUI_EVENT_SECONDARYDOWN | the secondary mouse button was pressed. |
$GUI_EVENT_SECONDARYUP | the secondary mouse button was released. |
$GUI_EVENT_RESIZED | dialog box has been resized. |
$GUI_EVENT_DROPPED | End of a Drag&Drop action @GUI_DragId, @GUI_DragFile and @GUI_DropId will be used to retrieve the ID's/file corresponding to the involve control. |
GUICtrlSetOnEvent, GUIEventOptions (Option), GUIOnEventMode (Option)
#include <GUIConstantsEx.au3>
#include <MsgBoxConstants.au3>
Example()
Func Example()
Opt("GUICoordMode", 2)
Opt("GUIResizeMode", 1)
Opt("GUIOnEventMode", 1)
GUICreate("Parent1")
GUISetOnEvent($GUI_EVENT_CLOSE, "SpecialEvents")
GUISetOnEvent($GUI_EVENT_MINIMIZE, "SpecialEvents")
GUISetOnEvent($GUI_EVENT_RESTORE, "SpecialEvents")
GUICtrlCreateButton("OK", 10, 30, 50)
GUICtrlSetOnEvent(-1, "OKPressed")
GUICtrlCreateButton("Cancel", 0, -1)
GUICtrlSetOnEvent(-1, "CancelPressed")
GUISetState(@SW_SHOW)
; Just idle around
While 1
Sleep(10)
WEnd
EndFunc ;==>Example
Func OKPressed()
MsgBox($MB_SYSTEMMODAL, "OK Pressed", "ID=" & @GUI_CtrlId & " WinHandle=" & @GUI_WinHandle & " CtrlHandle=" & @GUI_CtrlHandle)
EndFunc ;==>OKPressed
Func CancelPressed()
MsgBox($MB_SYSTEMMODAL, "Cancel Pressed", "ID=" & @GUI_CtrlId & " WinHandle=" & @GUI_WinHandle & " CtrlHandle=" & @GUI_CtrlHandle)
EndFunc ;==>CancelPressed
Func SpecialEvents()
Select
Case @GUI_CtrlId = $GUI_EVENT_CLOSE
MsgBox($MB_SYSTEMMODAL, "Close Pressed", "ID=" & @GUI_CtrlId & " WinHandle=" & @GUI_WinHandle)
GUIDelete()
Exit
Case @GUI_CtrlId = $GUI_EVENT_MINIMIZE
MsgBox($MB_SYSTEMMODAL, "Window Minimized", "ID=" & @GUI_CtrlId & " WinHandle=" & @GUI_WinHandle)
Case @GUI_CtrlId = $GUI_EVENT_RESTORE
MsgBox($MB_SYSTEMMODAL, "Window Restored", "ID=" & @GUI_CtrlId & " WinHandle=" & @GUI_WinHandle)
EndSelect
EndFunc ;==>SpecialEvents