捕获窗口消息。
GUIGetMsg ( [高级模式] )
参数
高级模式 | [可选参数] 以数组的形式返回扩展信息。 0 = (默认)只返回捕获的事件。 1 = 返回一个含有事件及扩展信息的数组。 |
返回值
返回一个事件(ID)或一个数组,取决于“高级模式”参数的设置。0 | 无事件 |
控件 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 | 鼠标的次要按钮被松开 |
注意
本函数在执行时将自动按需闲置 CPU 因此您可以放心地在紧凑的循环中使用本函数而不必担心 CPU 的负荷问题。
相关
GUICreate, GUICtrlCreate..., GUICtrlRead, GUIOnEventMode(选项)
示例
;----------------------------------------------------------------------
; 示例 - 按下按钮即可查看被选中地单选框按钮
; 本脚本也同时演示了窗口状态的检测(被关闭/最小化/超时,等等)
#include <GUIConstants.au3>
Opt("GUICoordMode", 1)
GUICreate("单选按钮演示", 400,280)
; 创建控件
$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 = 第一个单选按钮被选中,2 = 最后一个单选按钮被选中
$radioval2 = 2
; 显示 GUI 窗口
GUISetState ()
; 在下面这个消息循环中我们使用了变量来跟踪单选按钮的变化,
; 也有其它方法,比如使用 GUICtrlRead() 来读取每个控件的状态
While 1
$msg = GUIGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
MsgBox(0, "", "窗口将被关闭")
Exit
Case $msg = $GUI_EVENT_MINIMIZE
MsgBox(0,"", "窗口被最小化",2)
Case $msg = $GUI_EVENT_MAXIMIZE
MsgBox(0,"", "窗口被还原",2)
Case $msg = $button_1
MsgBox(0, "默认按钮被点击", "Radio " & $radioval1 )
Case $msg >= $radio_1 AND $msg <= $radio_3
$radioval1 = $msg - $radio_1
EndSelect
WEnd