マウス操作のためのウインドウに追加する
マウスのウインドウで。その1
「追加するランチャー」のページで区画をクリックして動作させる方法を紹介しました。
もう、それさえあれば簡易的なランチャーが使用でき、マウスだけを使って動作ができるものをある程度作れると思います。
そうなのですが、 マウス操作のためのウインドウ を操作する例については何も挙げていないままだったため、ここで紹介しておこうと思います。
とは言え、 「追加するランチャー」の様に一から作ったものの方が便利なので、 マウス操作のためのウインドウ をあえて使って作る利点は無いと言えば無いと思った上で紹介します。
区画を追加する
とりあえず、一番単純な方法から挙げます。
前のページで紹介した
Gui, %GuiNum%:Add, Text, %option%, %word%
や
F_GuiAddPictureNoExtFile( GuiNum, noExtFile, option )
を使って、区画を追加する例です。
F_GuiAddPictureNoExtFile( )
F_GuiAddPictureNoExtFile( )
を使えば、
マウス操作のウインドウ
と同じ様に画像を使った区画を追加できます。
F_GuiAddPictureNoExtFile( B_GuiNumClickWindow, A_ScriptDir . "\trrEvery\doc\clickWindow\clickEveryItemGui.gif", "x+0 yp+0 w64 h64 gG_subroutine1" )
これを実行すれば、マウス操作のウインドウ に区画が追加されます。
この処理は、既にある区画の右側に追加するやり方を取っています。
次の下の行の左端に追加する場合は
x+0 yp+0
の個所を変える事になります。
以下の処理を使います。
F_GuiAddPictureNoExtFile( B_GuiNumClickWindow, A_ScriptDir . "\trrEvery\doc\clickWindow\clickEveryItemGui.gif", "x0 y+0 w64 h64 gG_subroutine1" )
動作を指定する方法に、
gG_subroutine1
を指定しています。
G_subroutine1
の
アイテム
を作って、実行する動作を指定しておく事になります。
Gui, %GuiNum%:Add, Text
本当は画像を使う必要もあまり無い気がします。画像ではなく文字のみの区画でよい場合はこちらを使います。
Gui, %B_GuiNumClickWindow%:Add, Text, x+0 yp+0 w64 h64 gG_subroutine1 Center Border , [文字]
画像を用意する手間が省けるので、実際に使うのはこちらの方がよいと思います。
区画を文字ではなく、ボタンにする場合は以下の様になります。
Gui, %B_GuiNumClickWindow%:Add, Button, x+0 yp+0 w64 h64 gG_subroutine1 , [文字]
これらの処理も、次の下の行の左端に配置する場合は、 x+0 yp+0 の個所を変える事になります。
そして動作を指定する方法に、
gG_subroutine1
を指定しているので、
G_subroutine1
の
アイテム
を作って、実行する動作を指定しておく事になります。
画像が無い時にだけ文字の区画を作る処理も挙げておきます。
V_var1 := F_GuiAddPictureNoExtFile( B_GuiNumClickWindow, A_ScriptDir . "\trrEvery\doc\clickWindow\clickEveryItemGui.gif", "x+0 yp+0 w64 h64 gG_subroutine1" )
if( V_var1 == False ){
Gui, %B_GuiNumClickWindow%:Add, Text, x+0 yp+0 w64 h64 gG_subroutine1 Center Border , [文字]
}
とりあえず、一番単純な区画を追加する方法がこれらだと思います。
G_subroutine を作って実行する処理を別に用意しておく手間がかかりますが、単純なのでその都度自由に配置できる利点があります。
これらの処理は テキスト から実行したとしても、再起動した時には無効になります。
なので、 起動時に実行するアイテム の中に含める形で記述しておく使い方をするものになります。
初期の状態からある区画を操作
マウス操作のウインドウ は「追加するランチャー」と違って、元からある区画がスペースをしめているので「追加するランチャー」より追加が難しいと思います。
ですので、 マウス操作のウインドウ の元からある区画を非表示にするなどの操作をする事でスペースを空ける方法を紹介します。
元からある区画を操作するには、その区画の「コントロール変数」を知っていれば操作できます。
以下に区画ごとの「コントロール変数」を紹介します。
「コントロール変数」とは、
Gui
の
AHKコマンド
の中で
v[変数名]
のオプションを使って指定するものを「コントロール変数」と呼んでいます。
この変数を指定しておくことで、 Gui を使用して作ったコントロールを非表示にしたり移動したりする事が可能になります。
自作した「コントロール変数」を指定する場合は、 global 宣言をした変数名を指定する必要があります。
「コントロール変数」とその区画をクリックすると表示するウインドウを表しています。
TRR
には、コントロール変数を値に持つ変数として
B_conText1_Edit1
などがあります。
今回紹介する「コントロール変数」は、これらと用途は同じものですが
B_conText1_Edit1
は「コントロール変数」を値に持つ変数であり、ここで紹介する変数は、「コントロール変数」そのものであるという違いがあります。
マウス操作のウインドウ
の「コントロール変数」を値に持つ変数を用意してもよかったのですが、
今後「コントロール変数」の変数名を変えたりはしないと思うので、
B_conText1_Edit1
といった変数を用意しなくてもよいと、とりあえずは思っています。
「コントロール変数」を値に持つ変数は用意していないので、 Picture76_1 という「コントロール変数」自体を使用して操作をしてください。
区画を削除する
マウス操作のウインドウ にある区画を取り除く例を挙げます。
一番最後にある「タイマー一覧」の区画を取り除く場合は以下のスクリプトを実行します。
GuiControl, %B_GuiNumClickWindow%:+Hidden1, Picture76_20
取り除くというより、非表示にした状態にします。 +Hidden1 が非表示にするオプションです。
非表示にしただけなので、以下のスクリプトで再表示します。
GuiControl, %B_GuiNumClickWindow%:+Hidden0, Picture76_20
区画を移動する
区画を取り除く例を挙げます。
「二行以上のテキスト」の区画を左上に移動する場合は以下のスクリプトを実行します。
左上に移動すると、「テキスト1」の区画と重なり、どちらが動作をするか分からなくなるので 「テキスト1」の区画も移動し、さらに縮小させます。
GuiControl, %B_GuiNumClickWindow%:Move, Picture76_1, x64 w64
GuiControl, %B_GuiNumClickWindow%:Move, Picture76_19, x0 y0
「テキスト1」 の操作を先にしないと、区画の文字が「二行以上のテキスト」に変わってしまう様です。
Move が移動と拡大・縮小をするオプションです。
+Hidden1 の時と違い、 + はいりません。
最後の引数に、
x[数字]
と
y[数字]
で位置の座標を指定して移動をし、
w[数字]
と
h[数字]
を指定して拡大・縮小をさせます。
マウス操作のウインドウ に区画を追加して使う場合は、既に在る区画がスペースをしめているのでそれらを空ける必要がでてくると思います。
「コントロール変数」を知っていれば、元の区画を非表示したり移動したりできるため マウス操作のウインドウ に区画を追加して使う場合は以上に挙げた例を使って元のスペースを空けるなどして使ってください。