Function Reference

首页  后退  前进

GUISetOnEvent

 

设置系统按钮点击事件的自定义函数.

 

GUISetOnEvent ( specialID, "function" [, winhandle] )

参数

specialID

见下面 专用 ID 列表 below.

function

用户函数名称.

winhandle

[可选]GUICreate() 函数返回的窗口句柄 (默认为先前使用的窗口).

返回值

成功:

返回 1.

失败:

返回 0.

备注

本函数仅当设置了选项 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

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