基 础 函 数 参 考


GUICtrlSetOnEvent

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

GUICtrlSetOnEvent ( 控件ID, "函数" )

参 数

控件ID GUICtrlCreate... 函数返回的控件标识符.
函数 被调用函数的名称.

返 回 值

成功: 返回 1.
失败: 返回 0,

备 注

定义的自定义函数仅当 GUIOnEventMode 选项为 1 时有效- 此模式下 GUIGetMsg 将完全无效.

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

调用用户函数的控件标识符可由宏 @GUI_CTRLID 获取.
如有需要, 窗口句柄和控件句柄可分别由 @GUI_WINHANDLE 或 @GUI_CTRLHANDLE 获取.

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

相 关 函 数

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

函 数 示 例


#include <GUIConstantsEx.au3>

Example()

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

    GUICreate("父窗 1")
    GUISetOnEvent($GUI_EVENT_CLOSE, "SpecialEvents")
    GUISetOnEvent($GUI_EVENT_MINIMIZE, "SpecialEvents")
    GUISetOnEvent($GUI_EVENT_RESTORE, "SpecialEvents")

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

    GUICtrlCreateButton("取消", 0, -1)
    GUICtrlSetOnEvent(-1, "CancelPressed")

    GUISetState(@SW_SHOW)

    ; 仅循环等待状态
    While 1
        Sleep(10)
    WEnd

EndFunc   ;==>Example


Func OKPressed()
    MsgBox(0, "确定点击", "ID=" & @GUI_CtrlId & " 窗口句柄=" & @GUI_WinHandle & " 控件句柄=" & @GUI_CtrlHandle)
EndFunc   ;==>OKPressed


Func CancelPressed()
    MsgBox(0, "删除点击", "ID=" & @GUI_CtrlId & " 窗口句柄=" & @GUI_WinHandle & " 控件句柄=" & @GUI_CtrlHandle)
EndFunc   ;==>CancelPressed


Func SpecialEvents()
    Select
        Case @GUI_CtrlId = $GUI_EVENT_CLOSE
            MsgBox(0, "关闭点击", "ID=" & @GUI_CtrlId & " 窗口句柄=" & @GUI_WinHandle)
            Exit

        Case @GUI_CtrlId = $GUI_EVENT_MINIMIZE
            MsgBox(0, "窗口最小化", "ID=" & @GUI_CtrlId & " 窗口句柄=" & @GUI_WinHandle)

        Case @GUI_CtrlId = $GUI_EVENT_RESTORE
            MsgBox(0, "窗口还原", "ID=" & @GUI_CtrlId & " 窗口句柄=" & @GUI_WinHandle)

    EndSelect
EndFunc   ;==>SpecialEvents

provider with jb51.net (unicode)