Function Reference

首页  后退  前进

GUICtrlSetOnEvent

 

设置控件点击事件的自定义函数.

 

GUICtrlSetOnEvent ( controlID, "function" )

参数

controlID

使用 GUICtrlCreate...() 创建控件类函数返回的控件标识符, 或设置为 -1 使用前面创建的控件.

function

被调用函数的名称.

返回值

成功:

返回 1.

失败:

返回 0.

备注

仅当 GUIOnEventMode 选项为 1 时 OnEvent 事件函数有效 - 此模式下 GUIGetMsg() 将完全无效.

 

您不能使用参数调用一个函数.

 

调用用户函数的控件标识符可由宏 @GUI_CTRLID 获取.

如有需要, 窗口句柄和控件句柄可分别由 @GUI_WINHANDLE 或 @GUI_CTRLHANDLE 获取.

 

如果"函数"的参数值为空字符串 "", 则先前的用户定义被禁用.

相关

GUICtrlCreate..., GUICtrlCreateDummy, GUICtrlSendToDummy, GUIGetMsg, GUIOnEventMode (Option), GUISetOnEvent

函数示例

#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)
            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

----------------------------------------