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

画像の形のフォームを作るには

環境/言語:[WindowsXP VB.NET2003]
分類:[.NET]

いつも参考にさせて頂いております。
ここのサンプルの文字の形のフォームを見て、画像の形のフォームも簡単に
(VB6.0より)作成できるのかなと思ったのですが、何しろVB.NETは初心者に
付き方法もできるのかも解りません。
透過色を指定してフォームに表示するぐらいは解りますが、その形にフォームを
切り取る方法を教えて頂けないでしょうか。
よろしくお願いします。
2004/08/05(Thu) 19:28:53 編集(投稿者)

■No5363に返信(新之助さんの記事)
> いつも参考にさせて頂いております。
> ここのサンプルの文字の形のフォームを見て、画像の形のフォームも簡単に
> (VB6.0より)作成できるのかなと思ったのですが、何しろVB.NETは初心者に
> 付き方法もできるのかも解りません。
> 透過色を指定してフォームに表示するぐらいは解りますが、その形にフォームを
> 切り取る方法を教えて頂けないでしょうか。
> よろしくお願いします。

こんな感じならできますよ。([↓]うぷしたファイルを御覧ください)

' this::Load
Private Sub frmMenu_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
  Me.FormBorderStyle = FormBorderStyle.None
  Me.BackgroundImage = Image.FromFile("Hoge.bmp")
  Me.TransparencyKey = Color.FromName("Control")
End Sub

まあ、ウィンドウがControl色準拠ならの話。
といっても、XPStyle(XP視覚ファイル)も一般的なのなら大丈夫なはず。

# というより、FromName()メソッドでやっているので大丈夫なはず。

■追記
ただし、Control色と同じ色を使用することはできませんので、
もし、色が被ってしまうようであれば、RGB値を1くらいずらしたりして誤魔化す必要があります。
Win2Kまでなら、基本的に大丈夫ですが、
XPだと根底からデザインが変えれてしまうので、注意が要ります。

透明色を指定する前に、画像で透明にしたいところと同じ色にする必要があります。
動的にやるには大変面倒でございます。

Win32APIで透明色を指定するのも、結局同じことなのでダメでした。
(この記事にはファイル"MacWintosh.gif"が添付されていましたが、削除されました。)
java.lang.Nullpoさん 早速の回答ありがとうございました。
おかげさまで、イラストの形のフォームを作成する事できました。
解決済み!
私のサイトでも解説しています。

DOBON.NET .NET Tips - フォームウィンドウの特定の色を透明にする
http://dobon.net/vb/dotnet/form/transparencykey.html
> 私のサイトでも解説しています。
> DOBON.NET .NET Tips - フォームウィンドウの特定の色を透明にする

ありがとうございます。
タイトルしか見ていなかったので気がつきませんでした。
java.lang.Nullpoさんのサンプルや管理人さんの教えて頂いたところの
上の方のサンプルや解説では、私のような初心者では一発でできなかったので
なやんでおりましたが、下部の方に書いてあったのですね。
よく見ないといけませんね。
フォームを透明にしておいてからバックを透明にしたBMPを表示する事で
解決しました。
ありがとうございました。今後ともよろしくお願いします。
解決済み!

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