捕獲窗口消息。
GUIGetMsg ( [高級(jí)模式] )
參數(shù)
高級(jí)模式 | [可選參數(shù)] 以數(shù)組的形式返回?cái)U(kuò)展信息。 0 = (默認(rèn))只返回捕獲的事件。 1 = 返回一個(gè)含有事件及擴(kuò)展信息的數(shù)組。 |
返回值
返回一個(gè)事件(ID)或一個(gè)數(shù)組,取決于“高級(jí)模式”參數(shù)的設(shè)置。0 | 無事件 |
控件 ID | 發(fā)送消息的控件 ID |
$GUI_EVENT_CLOSE | 對(duì)話框(窗口)正被關(guān)閉(相關(guān)按鈕被點(diǎn)擊或系統(tǒng)菜單項(xiàng)被選中) |
$GUI_EVENT_MINIMIZE | 對(duì)話框(窗口)被最小化(窗口標(biāo)題欄上的最小化按鈕被點(diǎn)擊) |
$GUI_EVENT_RESTORE | 對(duì)話框(窗口)被還原(任務(wù)欄圖標(biāo)被點(diǎn)擊) |
$GUI_EVENT_MAXIMIZE | 對(duì)話框(窗口)被最大化(窗口標(biāo)題欄上的最大化按鈕被點(diǎn)擊) |
$GUI_EVENT_MOUSEMOVE | 鼠標(biāo)指針移動(dòng) |
$GUI_EVENT_PRIMARYDOWN | 鼠標(biāo)的主要按鈕被按下 |
$GUI_EVENT_PRIMARYUP | 鼠標(biāo)的主要按鈕被松開 |
$GUI_EVENT_SECONDARYDOWN | 鼠標(biāo)的次要按鈕被按下 |
$GUI_EVENT_SECONDARYUP | 鼠標(biāo)的次要按鈕被松開 |
注意
本函數(shù)在執(zhí)行時(shí)將自動(dòng)按需閑置 CPU 因此您可以放心地在緊湊的循環(huán)中使用本函數(shù)而不必?fù)?dān)心 CPU 的負(fù)荷問題。
相關(guān)
GUICreate, GUICtrlCreate..., GUICtrlRead, GUIOnEventMode(選項(xiàng))
示例
;----------------------------------------------------------------------
; 示例 - 按下按鈕即可查看被選中地單選框按鈕
; 本腳本也同時(shí)演示了窗口狀態(tài)的檢測(被關(guān)閉/最小化/超時(shí),等等)
#include <GUIConstants.au3>
Opt("GUICoordMode", 1)
GUICreate("單選按鈕演示", 400,280)
; 創(chuàng)建控件
$button_1 = GUICtrlCreateButton ("B&utton 1", 30, 20, 120, 40)
$group_1 = GUICtrlCreateGroup ("Group 1", 30, 90, 165, 160)
GUIStartGroup()
$radio_1 = GUICtrlCreateRadio ("Radio &0", 50, 120, 70, 20)
$radio_2 = GUICtrlCreateRadio ("Radio &1", 50, 150, 60, 20)
$radio_3 = GUICtrlCreateRadio ("Radio &2", 50, 180, 60, 20)
; 初始化變量,用于跟蹤 GUI 事件
$radioval1 = 0 ; 我們假定 0 = 第一個(gè)單選按鈕被選中,2 = 最后一個(gè)單選按鈕被選中
$radioval2 = 2
; 顯示 GUI 窗口
GUISetState ()
; 在下面這個(gè)消息循環(huán)中我們使用了變量來跟蹤單選按鈕的變化,
; 也有其它方法,比如使用 GUICtrlRead() 來讀取每個(gè)控件的狀態(tài)
While 1
$msg = GUIGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
MsgBox(0, "", "窗口將被關(guān)閉")
Exit
Case $msg = $GUI_EVENT_MINIMIZE
MsgBox(0,"", "窗口被最小化",2)
Case $msg = $GUI_EVENT_MAXIMIZE
MsgBox(0,"", "窗口被還原",2)
Case $msg = $button_1
MsgBox(0, "默認(rèn)按鈕被點(diǎn)擊", "Radio " & $radioval1 )
Case $msg >= $radio_1 AND $msg <= $radio_3
$radioval1 = $msg - $radio_1
EndSelect
WEnd