マウス操作のためのウインドウに追加する
マウス操作のためのウインドウ がありますが、実際にはマウスで操作できるような便利なものは出来ていません。
当初としては、ユーザーが指定したい処理を自由に配置できるようにしようと思っていました。
そのための規定のコマンドなり、関数なりを用意してそれが出来やすいようにしようと思っていたのですが、
Gui, %GuiNum%:Add, Picture, %option%, %file%
や
Gui, %GuiNum%:Add, Text, %option%, %word%
を使用すればそれで可能なのと、
F_GuiAddPictureNoExtFile( )
の関数を用意していて、
これ以上
マウス操作のためのウインドウ
に追加するためのものを用意しても余り変わりがないと思ったので、
特別に
マウス操作のためのウインドウ
のための関数といったものは用意していません。
F_GuiAddPictureNoExtFile( ) の仕様
F_GuiAddPictureNoExtFile( GuiNum, noExtFile, option )
以上の書式になっていて、
GuiNum
にGuiの番号を指定し、
noExtFile
に画像のファイルパスを指定します。
noExtFile
の引数に指定するファイルパスは、拡張子を除いたファイルパスを指定してもよい様になっています。
用意している画像のファイルパスが
- jpeg
- gif
- png
のどれかなら、それらがあるかを調べて存在するファイルを使用するようになっています。
なお、この関数は
noExtFile
の引数に指定しているファイルが見つからない場合は、
返り値に
False
を返します。
ファイルが見つかった場合は
True
を返すようになっています。
option の引数は、
Gui, %GuiNum%:Add, Picture, %option%, %file%
の option に指定するときと同じものを指定する個所です。
Guiに追加する
さきほどの、
Gui, %GuiNum%:Add, Picture, %option%, %file%
や
Gui, %GuiNum%:Add, Text, %option%, %word%
や
F_GuiAddPictureNoExtFile( GuiNum, noExtFile, option )
を使って、自由な処理を指定した
画像や文字のGuiの区画を追加することができます。
マウス操作のためのウインドウ に追加する例を挙げます。
Gui, %B_GuiNumClickWindow%:Add, Text, x+0 yp+0 w64 h64 gG_subroutine1 Center Border , 文字
長いので二行以上になっていますが、一行の処理です。
これを実行すると、新しい区画が追加されます。
Gui, %B_GuiNum%:Add, Text
を使っているので、文字の区画が追加されます。
この区画をクリックすると、 G_subroutine1 のアイテムが実行されます。
他の 2つの、
Gui, %GuiNum%:Add, Picture, %option%, %file%
と
F_GuiAddPictureNoExtFile( GuiNum, noExtFile, option )
の処理はほとんど同じです。
F_GuiAddPictureNoExtFile( )
の方は、拡張子を除いたファイルパスを指定できるといった違いぐらいです。
画像のファイルを用意しているなら、
マウス操作のためのウインドウ
の区画と同じ様にするために、それらを使ってもよいと思います。
TRR があるフォルダに img.gif の名前のファイルがあればそれを使って新しい区画を追加する指定です。
ちなみに、画像があった場合は画像を使い、
画像が無かった場合は文字だけで表すようにする場合は以下の様なスクリプトを使えばいいと思います。
V_var1 := F_GuiAddPictureNoExtFile( B_GuiNumClickWindow, A_ScriptDir . "\img.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 , 文字
}
最後に
先程言ったように、
マウス操作のためのウインドウ
に追加する関数などを用意しようと思っていたのですが、
用意したとしても、
B_GuiNumClickWindow
を指定する必要があるかないかの違いがあるだけで余り代わり映えのないものを用意するだけになると思うので用意していません。
先程のスクリプトの指定の仕方を使っても十分な気がするので、以上に挙げた例を使うことを薦めます。
試しに作った例
見本になるため、以下のようなものを作りました。

説明が長く話が脱線している節があるので見なくてもよいものですが、 TRR で何かを作る際には参考になるかもしれません。