非矩形のコントロールを作るには?

解決


キー  2006-06-22 16:14:40  No: 62293  IP: 192.*.*.*

非矩形のコントロールを作りたいのですが
以下を参考にしてみました。
http://www.microsoft.com/japan/msdn/vs/client/vbtchshapedwindowsformscontrolsinvisualstudionet.asp

これで、フォームも、その上のコントロールも
非矩形のものができたのですが
リージョンを指定する方法以外に
例えばリソース(ビットマップなど)の色を指定することなどで
非矩形のコントロールを実現できないでしょうか?

或いは、リソースを元に
リージョンを指定するような方法をご存知ないでしょうか。

開発環境は.NET2003。言語はC++またはC#です。

編集 削除
michi  2006-06-22 17:21:42  No: 62294  IP: 192.*.*.*

.NETではなくWin32アプリケーションでの方法なんですが

http://www.vector.co.jp/soft/win95/prog/se122274.html

これを使えば、ビットマップからRGNDATA構造体をファイルとしてRAW出力できます。この、RGNDATA構造体をGDIのExtCreateRegion関数に渡せばHRGNを得られます。


あと、以前に私が試して途中であきらめた方法なんですが、

System.Drawing.Drawing2D.RegionDataのDataプロパティに
直接、値を設定したりするのはどうですか?

編集 削除
キー  2006-06-23 14:54:16  No: 62295  IP: 192.*.*.*

michiさんコメントありがとうございます。参考になります。
まずは前者のソフトを使ってリージョンを取得してみます。
Win32での開発も可能なので手軽そうであればこちらで。

これとは別に
フォームはリソースから手軽に非矩形のウィンドウが作れるので
フォームを複数組み合わせてGUIを作ることも考えてみたのですが
ちょっと作りが煩雑になりそうです^^;

編集 削除