GUISetOnEvent
设置系统按钮点击事件的自定义函数.
GUISetOnEvent ( specialID, "function" [, winhandle] )
参数
specialID
|
见下面 专用 ID 列表 below.
|
function
|
用户函数名称.
|
winhandle
|
[可选] 由 GUICreate() 函数返回的窗口句柄 (默认为先前使用的窗口).
|
返回值
备注
本函数仅当设置了选项 Opt("GUIOnEventMode", 1) 时才能调用- 而此模式时 GUIGetMsg() 将完全无效.
您不能使用参数调用一个函数.
如果设置了选项 Opt ("GUIEventOptions", 1) 最小化,还原和最大化按钮除了发送消息外不会有任何动作.
如果"函数名"为空字符串"", 则上一个用户定义函数将被关闭.
专用 ID 表
Special 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
|
结束 @GUI_DRAGID 拖放操作, @GUI_DRAGFILE 与 @GUI_DROPID 检索控件 ID 或文件名称
|
相关
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
----------------------------------------
|