なにかイベントが起きていないかどうか確認するためGUIをポーリングします。
GUIGetMsg ( [advanced] )
パラメータ
advanced | [オプション] 拡張情報を配列で返します。 0 = (デフォルト) イベントを1つ返します。 1 = イベントとその拡張情報を格納した配列を返します。 |
返し値
イベントを返すか、配列を返すかは"advanced"によって異なります。イベントID | メッセージを送信しているコントロールのID |
0 | イベントなし |
$GUI_EVENT_CLOSE | (定義したボタン、またはシステムメニューによって)ダイアログボックスが閉じられました。 |
$GUI_EVENT_MINIMIZE | ウィンドウタイトルバーのボタンによってダイアログボックスが最小化されました。 |
$GUI_EVENT_RESTORE | タスクバーアイコンのクリックによってダイアログボックスが元に戻されました。 |
$GUI_EVENT_MAXIMIZE | ウィンドウタイトルバーのボタンによってダイアログボックスが最大化されました。 |
$GUI_EVENT_MOUSEMOVE | マウスカーソルが動きました。 |
$GUI_EVENT_PRIMARYDOWN | マウス第1ボタンが押されました。 |
$GUI_EVENT_PRIMARYUP | マウス第1ボタンが離されました。 |
$GUI_EVENT_SECONDARYDOWN | マウス第2ボタンが押されました。 |
$GUI_EVENT_SECONDARYUP | マウス第2ボタンが離されました。 |
$GUI_EVENT_RESIZED | ダイアログボックスのサイズが変更されました。 |
$GUI_EVENT_DROPPED | ドラッグアンドドロップアクションがおこなわれました。@GUI_DRAGID、@GUI_DRAGFILE、@GUI_DROPIDを使用して関係するコントロールに対応するID/ファイルを取得できます。 |
注意
この関数は動作時に自動でCPUをアイドリングします。従ってループ内で使用した場合もCPUを占有することはありません。
関連
GUICreate, GUICtrlCreate..., GUICtrlRead, GUIOnEventMode (Option), GUIEventOptions (Option), GUIGetCursorInfo, GUICtrlSendMsg, GUICtrlSetOnEvent
例
#include <GUIConstantsEx.au3>
Opt('MustDeclareVars', 1)
Example()
;-------------------------------------------------------------------------------------
; 例 - ラジオボックスの値を見るためにボタンを押す
; スクリプトは状態の変化(閉じた/最小化/タイムアウトなど)も検知する
Func Example()
Local $button_1, $group_1, $radio_1, $radio_2, $radio_3
Local $radioval1, $radioval2, $msg
Opt("GUICoordMode", 1)
GUICreate("Radio Box Demo", 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, "", "Dialog was closed")
Exit
Case $msg = $GUI_EVENT_MINIMIZE
MsgBox(0, "", "Dialog minimized", 2)
Case $msg = $GUI_EVENT_MAXIMIZE
MsgBox(0, "", "Dialog restored", 2)
Case $msg = $button_1
MsgBox(0, "Default button clicked", "Radio " & $radioval1)
Case $msg >= $radio_1 And $msg <= $radio_3
$radioval1 = $msg - $radio_1
EndSelect
WEnd
EndFunc ;==>Example