ツールチップを自動で消えるようにする関数
ツールチップを自動で消えるようにする関数
ツールチップに色々情報を表示するのは便利なのだが、AutoHotkeyのTooltipコマンドは、空のツールチップを出すまで残り続けてしまう面倒な仕様だったりする。
そこで今までは以下のようにSleepで表示したい時間を確保していた。
Tooltip, text Sleep, 1000 Tooltip,
ところが、これだとSleepの間再度同じホットキーを入力しようと思ってもできない。連続でホットキーを使いたい場合には不向きだ。
そこで、色々調べていたら、SetTimerの間隔を負の数値にすれば一回だけ実行してくれるので、それを使ってツールチップを消すラベルに飛べばいいことがわかった。
ググッたらその通りの機能を関数にしてる人がいたので、http://pc12.2ch.net/test/read.cgi/software/1253888736/984より拝借。
AutoHideTooltip(Txt, Time, X="", Y="") { Tooltip, %Txt%, %X%, %Y% SetTimer, AutoHide, -%Time% Return AutoHide: Tooltip, Return }
これを適当なところに書いておいて、ツールチップを使うときには
AutoHideTooltip("1秒後に消える", 1000) AutoHideTooltip("X100、Y100の位置に出て3秒後に消える", 3000, 100, 100)
というように表示テキストと表示時間、必要に応じて表示位置を入れればいい。
テキスト部分は、引用符の外に書けば変数も演算も可能。