基 础 函 数 参 考


GUISetOnEvent

设置点击系统按钮时调用的自定义函数.

GUISetOnEvent ( 专用ID, "函数名" [, 句柄] )

参 数

专用ID 见下面 专用 ID 列表 below.
函数 用户函数名称.
句柄 [可选参数] 由 GUICreate 函数返回的窗口句柄 (默认为先前使用的窗口).

返 回 值

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

备 注

本函数仅当选项 GUIOnEventMode 设置为 1 时才能调用 - 而此模式时 GUIGetMsg 将完全无效.

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

如果选项 GUIEventOptions 设置为 1 时, 最小化,还原和最大化按钮除了发送消息外不会有任何动作.

如果"函数名"为空字符串"", 则上一个用户定义函数将被关闭.

    专用 ID 表


专用 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 或文件名称.

相 关 函 数

GUIOnEventMode (Option), GUIEventOptions (Option), GUICtrlSetOnEvent

函 数 示 例


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