タイトル : Re: 透けて見える画像を表示させたい 投稿日 : 2010/05/27(Thu) 22:50 投稿者 : 魔界の仮面弁士
> Formに PictureBoxを配置し そのなかに複数のコントロールを配置しています。 > それらのコントロールなどを > 薄い色で覆い隠し 透けて見えるようにしたいのです。 直接の機能は無いので手間はかかりますが、こんな方法は如何でしょう。 《第1案》 (1) 枠なしフォームを別途用意する。フォームの色は適当な単一色に設定(白など)。 (2) API を使い、それを半透明のレイヤード ウィンドウにする。 (3) 元のフォームと同じ座標に、半透明フォームを重ね置く事で対応。 →なお、元フォームのリサイズや移動に対応させる必要がある場合は、 サブクラス化でリサイズ等の Windows メッセージを拾うか、あるいは Timer で位置を監視して、半透明フォームの位置を追従させる。 《第2案》 (1) フォーム全体を覆う PictureBox (または Frame)を用意し、 Form上に配置されていた現行のコントロール群すべてを、 その PictureBox 上に配置しなおす。 (2) 下記のサンプルを用い、現行の画面内容を Picture オブジェクトに変換。 http://support.microsoft.com/kb/161299/ja (3) 撮影後、コンテナとしていた PictureBox を非表示にして全コントロールを隠す。 (4) 替わりに、先ほど撮影した (2) の画像を Form 上に表示する。 (5) 薄い色で覆い隠す部分は、Alphablend API で対応。 |