DOBON.NET DOBON.NETプログラミング掲示板過去ログ

透過画像の部分消去について

環境/言語:[Windows Vista、XP / VisualBasic2005]
分類:[.NET]

PictureBoxコントロールを重ねて配置し、『PictureBox1.Controls.Add(PictureBox2)』(PictureBox2の背景色はTransparent)と設定してPictureBox1には写真、PictureBox2には透過情報が組み込まれたPNG画像を表示しています。

簡単なペイント機能を持たせてPictureBox2を自由に書き込み、編集、保存するところまでは順調だったのですが、ペイントで言う「消しゴム」を実現させるのに苦労しています。

PictureBox2の画像の一部を消去して「透過状態」に戻すにはどのようにすればよろしいでしょうか?なお、PictureBox2に読み込ませている画像にはもともと透過情報が入っていますので、MakeTransparentで透過色の指定は行っておりません。

いろいろ検索して回りましたが、それらしき情報にたどり着かず質問させていただきました。
基本的には、2つのピクチャーボックスを重ねるのではなく、1つのピクチャーボックスに背景と前景を合成して描画すべきでしょう。

どうしてもコントロールの背景を透過にしたいということであれば、拡張ウィンドウスタイルにWS_EX_TRANSPARENTを追加したコントロールを作成します。

DOBON.NET | プログラミング道 | プログラミング掲示板