函数说明

GUICtrlSetOnEvent

为指定控件的点击行为定义一个用户函数。

GUICtrlSetOnEvent ( 控件ID, "函数名" )

 

参数

控件ID 控件标识符(控件ID),可由 GUICtrlCreate... 函数的返回值获得。
函数名 要调用的用户函数名。

 

返回值

成功: 返回值为1。
失败: 返回值为0。

 

注意

OnEvent 函数仅当选项 GUIOnEventMode 的值为1时才能被调用,而在此模式下 GUIGetMsg 将完全无效

在被调用的用户函数内部可由宏 @GUI_CTRLID 获得控件的标识符。
如有需要则窗口句柄和控件句柄可分别由 @GUI_WINHANDLE 和 @GUI_CTRLHANDLE 获得。

 

相关

GUICreate, GUICtrlCreate..., GUIGetMsg, GUIOnEventMode(选项), GUISetOnEvent

 

示例


#include <GUIConstants.au3>

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

$parent1 = GUICreate("Parent1")
GUISetOnEvent($GUI_EVENT_CLOSE, "SpecialEvents")
GUISetOnEvent($GUI_EVENT_MINIMIZE, "SpecialEvents")
GUISetOnEvent($GUI_EVENT_RESTORE, "SpecialEvents")


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

$cancel1 = GUICtrlCreateButton ( "Cancel",  0, -1)
GUICtrlSetOnEvent(-1, "CancelPressed")

GUISetState(@SW_SHOW)


; 闲置
While 1
    Sleep(10)
Wend


; END


Func OKPressed()
    MsgBox(0, "OK 按钮被按下", "ID=" & @GUI_CTRLID & " WinHandle=" & @GUI_WINHANDLE & " CtrlHandle=" & @GUI_CTRLHANDLE)
EndFunc


Func CancelPressed()
    MsgBox(0, "Cancel 按钮被按下", "ID=" & @GUI_CTRLID & " WinHandle=" & @GUI_WINHANDLE & " CtrlHandle=" & @GUI_CTRLHANDLE)
EndFunc


Func SpecialEvents()
    

    Select
        Case @GUI_CTRLID = $GUI_EVENT_CLOSE
            MsgBox(0, "关闭按钮被按下", "ID=" & @GUI_CTRLID & " WinHandle=" & @GUI_WINHANDLE)
            Exit
            
        Case @GUI_CTRLID = $GUI_EVENT_MINIMIZE
            MsgBox(0, "窗口被最小化", "ID=" & @GUI_CTRLID & " WinHandle=" & @GUI_WINHANDLE)
            
        Case @GUI_CTRLID = $GUI_EVENT_RESTORE
            MsgBox(0, "窗口被还原", "ID=" & @GUI_CTRLID & " WinHandle=" & @GUI_WINHANDLE)
            
    EndSelect
    
EndFunc