タイトル : 複数のコントロールの透過処理について 投稿日 : 2007/06/27(Wed) 19:22 投稿者 : Purple
こんばんわ、以前透過について教えていただいた者です。 (仕様ソフト:VB 2005 express) さっそくですが再度、透過についての質問をさせてください。 MakeTransparent等の方法で透過させた部分には、通常Formの背景が表示されますが、下層に他のコ ントロールがあった場合、重なった部分が消えてしまう(欠けてしまう)現象が起きてしまいま す。これは正常な現象なのでしょうが、2種類以上のコントロールを透過させて重ね合わすのには不 都合になってしまいます。 試しに、 PictureBox1.Controls.Add(PictureBox2) を使うと、Box1は隠れなくなりますがBox2はBox1の透過部分に隠れてしまいました。 また、 Dim img1 As Image = My.Resources.画像A Dim img2 As Image = My.Resources.画像B Dim g As Graphics = AutoGraphics(PictureBox1) Dim ia As New ImageAttributes() ia.SetColorKey(Color.White, Color.White) g.DrawImage(img1, New Point(0, 0)) g.DrawImage(img2, New Rectangle(New Point(0, 0), img2.Size), _ 0, 0, img2.Width, img2.Height, GraphicsUnit.Pixel, ia) 以上の方法だとPictureBox1上に画像Aと画像Bを重ねられましたが、それぞれの画像を動かしたり消 したりできなくなってしまいました。 例えば、PictureBox1とPictureBox2に「●(黒部分以外は透過)」のイメージを読み込み、それぞ れ左右から近づけていっても、接触したときにどちらかの●が透過部分に隠れないようにしたいと 思っています。「スプライト処理」、または「レイヤー構造」と呼ばれているようですが、適した 方法を見つけることができません。 もしなにか分かる方がいましたら、アドバイスをよろしくお願いします。 |