ウィンドウ内にウィンドウを表示してるかのように見せかける


ログインウィンドウなどの小ウィンドウをいちいちダイアログ表示してるとなんかアレですよね。私も現在作っているプログラムでログインを求める部分が多数あるのですが、たくさん表示させる機会があるとなおさらスマートに見せたいですよね。
HTMLでいうLightBoxみたいな感じで表示させるライブラリを作ってみました。

まあただ、機能的にには見せかけているだけですし、LightBoxのようにすごいものでもありません。あくまで雰囲気作り。その程度です。あとバグっぽいものが幾つかあります。そこはご了承を

概要

cbox-sample

LightBoxのようにウィンドウ内にウィンドウを表示させるかのように見せかけたもの。小さなメッセージ等を表示させたいときに使えるかも

仕組み

cbox-spec

仕組みはLightBoxと似ていると思います。親となるウィンドウ(又はコントロール)の上にフィルターウィンドウを被せ、さらにメッセージウィンドウをその上に乗せているような感じです。

フィルターウィンドウは背景が黒で透過度を0%から徐々に30%まで上げてゆっくりと表示させています。
私の環境ではウィンドウが表示されるときのアニメーションと同じ早さでフェードインしていってる感じでした。(100ms)

また、メッセージウィンドウはフィルターウィンドウの常に真ん中にあるようにしました。親コントロールが動かされてもしっかりと真ん中に来るはずです。ただしMDI環境ではベースとなるコントロールのあるウィンドウが最大化されていないと不具合が発生する恐れあり。
もしバージョンアップする機会があればフィルターウィンドウをぼかしにしたりとアレンジを加える予定。

ライブラリの内容

zipファイルの中に4つのdllファイルがあります。私のプロジェクトから抜き取ったモジュールなので多分全部ないと動作しないと思います。

ダウンロード

ライセンスはこちらで公開されています。

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">