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

解決


キー  2006-06-23 01:14:40  No: 62293

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

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

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

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


michi  2006-06-23 02:21:42  No: 62294

.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 23:54:16  No: 62295

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

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


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加