GuiControl

Guiコマンドで作成したウィンドウに配置されたコントロールに対し各種操作を行う

GuiControl, SubCommand, ControlID [, Param3]

Parameters

引数名説明
SubCommand 実行する操作を指定。
省略時はコントロールの内容がParam3で指定したものに変更される。
詳しくは後述。
ControlID 対象となるコントロールを指定する。
コントロール作成時に「v」オプションで変数を割り当てている場合、その変数名で指定できる。
それ以外の場合、コントロールのClassNNかコントロールに含まれるテキストを指定する。
Pictureコントロールの画像ファイル名も指定できる。
Param3 各SubCommandの説明を参照。特に説明がなければ、省略する。

ErrorLevel

何か問題があれば「1」、正常に終了すれば「0」

SubCommand省略時

Param3にGui,Add時にText引数で設定する部分の内容を指定することで、値を再設定できる。
下記のコントロールについては、特記事項あり。

Hotkey
Param3に空文字列かホットキーを指定する。
ホットキーは「^!C」「^Home」「^NumpadHome」のようなホットキーラベルと同じ形式で指定する。修飾キーはCtrl(^)、Alt(!)、Shift(+)のみ使用可能。
Picture
Param3に新しく読み込む画像ファイル名を指定する。
ファイル名の前に半角スペースで区切って以下のオプションを指定できる。
例:GuiControl,, MyPic, *icon2 *w100 *h-1 C:\My Application.exe
*wN
Nにコントロールの幅を指定。「*w0」で画像の実際の幅。未指定の場合は現在のコントロールの幅。「*w-1」で縦横比を維持するように「*hN」での指定に合わせる。
*hN
Nにコントロールの高さを指定。「*h0」で画像の実際の高さ。未指定の場合は現在のコントロールの高さ。「*h-1」で縦横比を維持するように「*wN」での指定に合わせる。
*IconN
Nにアイコン番号を指定。実行ファイルなどのプログラムファイル中のアイコンを読み込むときに使用。
Checkbox
Param3にチェックの状態を指定する。
「0」ならチェックなし、「1」ならチェックあり、「-1」なら半チェック。
それ以外の場合、テキストを変更する。 「0」「-1」「1」という文字列をテキストに設定したい場合、「Text」サブコマンドを使用する。
Radio
Param3にチェックの状態を指定する。
「0」ならチェックなし、「1」ならチェックあり。
それ以外の場合、テキストを変更する。
チェックがなしからありになる場合、同じグループのほかのRadioのチェックは自動的に外れる。
DateTime
Param3にYYYYMMDDHH24MISSの書式で表示日時を設定する。
コントロールのオプションに「2」をつけてチェックボックスをつけている場合、空文字列を指定することでチェックをはずし、選択なしを表す状態にできる。
MonthCal
Param3にYYYYMMDDHH24MISSの書式で表示日時を設定する。
コントロールのオプションに「Multi」をつけて複数選択状態にしている場合、「20050101-20050202」のような範囲で指定する。
UpDown/Slider/Progress
新しい値/位置を指定する。
「+」に続き値を指定すると、現在の位置からの相対位置で指定できる。減らす場合も「+-10」のように負の値に+をつけて指定する。
設定された範囲外の数値になる場合は、範囲内で最寄の値になる。
DropDownList/ComboBox/ListBox
リストに追加するテキスト項目を「|」で区切って列挙。
リストの項目をすべて設定しなおす場合、最初の項目の前に「|」を入れる。(例:「|aaa|bbb|ccc」)
項目の後ろに「||」があると、その項目が選択された状態になる。(例:「xxx||yyy|zzz」、「xxx|yyy|zzz||」)
Tab
タブの名前や数によらず、1番目のタブシートに配置されていたコントロールは1番目のタブシートに、N番目のタブシートに配置されていたコントロールはN番目のタブシートに配置されたままになる。
変更によってタブシートの数が減る場合、一番後ろのタブシートが消えることになるが、後にタブの数が増えればタブシートの内容もろとも復活する。
ListView
リストビューの操作はリストビュー操作用の組み込み関数を使用する。

SubCommand

Text
サブコマンド省略時とほぼ同じ動作だが、CheckboxやRadioに「0」「-1」「1」を指定した場合でも、テキストとして設定される。
また、DateTimeコントロールでは、Param3で表示フォーマットを再設定できる。(Param3を省略すると、短い日付文字列フォーマットになる)
ComboBoxでは、入力欄の内容を変更できる。
Move
コントロールを移動/サイズ変更する。
Param3には「Xn」(nにX座標を指定)「Yn」(nにY座標を指定)「Wn」(nに幅を指定)「Hn」(nに高さを指定)の内、変更したいものをスペース区切りで列挙する。(例:「x10 y20 w200 h100」)
座標は、ウィンドウのタイトルバーやメニューバーを含まないクライアント領域上での座標。
MoveDraw
Moveとほぼ同じだが、ウィンドウを再描画させる。
表示内容が確実に更新されるが、表示がちらつく場合がある。
Focus
コントロールに入力フォーカスをあわせる
Enable
Enable1
Disable0
無効化されているコントロールを有効化する
Disable
Disable1
Enable0
コントロールを無効化する
Show
Show1
Hide0
非表示になっているコントロールを表示する
Hide
Hide1
Show0
コントロールを非表示にする
Choose
Param3番目の項目を選択する(DropDownList/ComboBox/ListBox専用)。
このコマンドで選択を変更した場合、通常は「g」オプションで割り当てられたサブルーチンは実行されないが、「GuiControl,,Choose,|3」のようにParam3の数字の前に「|」をつけると、サブルーチンが実行される。
また、「||」をつけると、A_GuiControlEvent変数がDoubleClickになっている状態でサブルーチンが実行される。
ChooseString
Param3で指定した文字列に前方一致する項目を選択する(DropDownList/ComboBox/ListBox専用)。
大文字小文字は区別されない。
このコマンドで選択を変更した場合、通常は「g」オプションで割り当てられたサブルーチンは実行されないが、「GuiControl,,Choose,|3」のようにParam3の数字の前に「|」をつけると、サブルーチンが実行される。
また、「||」をつけると、A_GuiControlEvent変数がDoubleClickになっている状態でサブルーチンが実行される。
Font
フォントを現在Gui,Fontでウィンドウに設定されているフォントに変更する。「Gui,Font」参照。
+Redraw/-Redraw
リストビューなどで大量の項目を追加・削除・変更する前にGuiControl,-Redraw,ControlIDで再描画を停止し、終了後に+Redrawで再開させることでパフォーマンスを改善できる。
+/-Option
GUI,add時に指定できるものと同じオプションを追加・解除する。
複数をスペースで区切って列挙することもできる。
例えば、「GuiControl, -g +AltSubmit, MyListBox」とすると、「G」オプションによるイベントサブルーチン割り当てを解除し、「AltSubmit」オプションを追加できる。
スタイルや拡張スタイルの大部分はこの方法で後から変更することはできない。(なお、変更に失敗しても、ErrorLevelは「0」になる)

Remarks

スクリプトは最大で10のウィンドウを持つことが出来る。
デフォルト以外のウィンドウを操作するには、サブコマンドの前に「2:」のようにウィンドウ番号とコロンを追加する。

基本的にデフォルトのウィンドウ番号は「1」だが、2番目以降のウィンドウ上のGUI操作の結果実行されたスレッドでは、そのウィンドウの番号がデフォルトになる。

GuiControl, 2:Show, MyButton
GuiControl, 2:, MyListBox, Item1|Item2

Related

Gui, GuiControlGet, Control

Example(s)

GuiControl,, MyListBox, |Red|Green|Blue ; Replace the current list with a new list.
GuiControl,, MyEdit, New text line 1.`nNew text line 2.
GuiControl,, MyRadio2, 1 ; Turn on this radio button and turn off all the others in its group.
GuiControl, Move, OK, x100 y200 ; Move the OK button to a new location.
GuiControl, Focus, LastName ; Set keyboard focus to the control whose variable or text is "LastName".