本帖最后由 vigiles 于 2014-1-26 13:21 编辑 ;函数Opt:更改GUI的交互模式为事件模式。Opt即AutoItSetOption简写
Opt("GUIOnEventMode", 1) ; 0=禁用事件模式, 1=启用事件模式
;隐藏右下角图标
Opt("TrayIconHide", 1)
;定义窗口关闭消息的值。-3为点击关闭按钮返回的固定值,$GUI_EVENT_CLOSE是个专用的窗口事件ID,表示关闭
Global Const $GUI_EVENT_CLOSE = -3
;变量$mainGUI:对窗体的引用,GUI函数GUICreate:创建一个窗口 默认居中显示(标题,宽, 高)
$mainGUI = GUICreate ( " 我的第一个窗口 " )
;GUI函数GUICtrlSetOnEvent:给窗体添加事件(窗体事件ID,处理方法)
GUISetOnEvent($GUI_EVENT_CLOSE, "funcGUI")
;变量$btn:对按钮的引用,函数GUICtrlCreateButton:创建一个按钮(文本,)
$btn = GUICtrlCreateButton("确定", 70, 50, 60)
;GUI函数GUICtrlSetOnEvent:给按钮添加事件(按钮,处理方法)
GUICtrlSetOnEvent($btn, "funcGUI")
;GUI函数GUISetState:指定窗体显示(显示宏,窗体)
GUISetState(@SW_SHOW, $mainGUI)
;下面这个死循环为何是必须的?
#comments-start
While 1
Sleep(1000) ; 休眠(毫秒), 以降低 CPU 使用率
WEnd
#comments-end
;关键字Func:定义一个方法
Func funcGUI()
;使用宏@GUI_CtrlId来判断消息来源于控件ID或系统事件ID
Switch @GUI_CtrlId
;固定ID存储窗体关闭返回值
Case $GUI_EVENT_CLOSE
Exit
Case $btn
MsgBox(0, "GUI按钮事件", "你点击了 '确定' 按钮!")
EndSwitch
EndFunc
这里没有使用#include <GUIConstantsEx.au3>
请问这个死循环起什么作用?当没有这个死循环时并未发生交互事件,为何窗体关闭了? |