tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル 複数のコントロールの透過処理について
投稿日: 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に「●(黒部分以外は透過)」のイメージを読み込み、それぞ
れ左右から近づけていっても、接触したときにどちらかの●が透過部分に隠れないようにしたいと
思っています。「スプライト処理」、または「レイヤー構造」と呼ばれているようですが、適した
方法を見つけることができません。

もしなにか分かる方がいましたら、アドバイスをよろしくお願いします。

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。