2008-09-21-01(日)
パネルを前面に出したり、半透明にさせてみたり
前回までのtestpanelラベルの続きで
testpanelAlphaTransparency 200
testpanelAlwaysOnTop true
「AlphaTransparency」は半透明表示の設定で、0〜255の値を指定する
0で完全に見えなくなり、255が通常の半透明なし状態
Win9x系では動かないらしい
半透明は、それほど全体の動作に負荷はかからないと思う。たぶん
ただ薄すぎると見えにくくなる(逆に非アクティブ時に値を下げるとかに使えるが)
xPaintClassにも半透明設定があるっぽいが、xLabel自体にも続けて設定が存在するっぽい
たぶん、専用の!Bangの関係なんだろう
!labelSetAlpha testpanel 200
このように!Bangでダイレクトに変更もできるので
どこかにこれを呼び出すパーツ(ポップアップだとかホットキーだとか)を仕込んで
切り替えられるようにするといい
こういうときに「AddToGroup」でグループ化しておけば
親グループの「AlphaTransparency」をいじるだけで、全部に適用されて便利
常に手前に表示は「AlwaysOnTop」をtrueにする
ヘルプを眺めている限り、これは、xPaintClassの範囲外っぽい
それぞれのモジュール側で対応してるのかな
元々、常に手前はどの表示系モジュールでもついてること多いので困らないが
ただ、この「AlwaysOnTop」は、たまにうまく機能しないことがある
起動時の描画タイミングの問題で前にこないときは、!Recycleしたら戻ったりする
また、xLabel同士の窓オーダーはラベルを作成した順番に影響するので
*lableで作るときの順序をいじったりしたらうまくいったりする
zOrderに関しては長年開発者も苦労してるようだ
「AlwaysOnTop」も、!Bangでコントロールできる
!labelAlwaysOnTop testpanel true
!labelAlwaysOnTop testpanel false
・zOrder
testpanelWindowzOrder true
「WindowzOrder」をtrueにすると、そのラベルは他の窓と同じように
フォーカスが当たったら前にきて、失ったら後にいくようになる
要は、普通のウインドウ振る舞いと同じになるということ
ただし、alwaysontopじゃない状態での話
確か、デフォルトでtrueだったと思う
testpanelBehindWindow "ClassName" "WindowName"
「BehindWindow」は、いまいちよくわからない
指定した窓クラスより前にこない設定だと思う
クリックしたら前にくるけどあるラベルよりも
前に出したくないとかいうときに使ったり
classname、windownameはwinspyとか使ったら調べられる
Relay Keyword's Recent Title
- 設定記述
- 2008-10-08-01 xPopup.dll
- 2008-10-08-02 何はともあれxPopupの最低限の設定を書いてみる
- 2008-10-08-03 xPopupのセパレータやらタイトル行やら
- xlabel
- 2009-05-24-01 labelのcreateとdestroyを1アクションで
- 2008-09-22-01 パネル内にアイコンを表示してランチャーっぽいのを作る
- 2008-09-21-01 パネルを前面に出したり、半透明にさせてみたり