リージョンを使って非矩形ウィンドウ(長方形でないウィンドウ)を作成する - Delphi
リージョンを使うことで、角を丸くした長方形や、円、その他自由な形、といった非矩形のウィンドウを作成できます。以下のコードは、角を丸くした長方形ウィンドウを作成するコードです。
リージョンを使い非矩形ウィンドウを作成した場合は通常表示されるウィンドウの表示内容をリージョンでマスクするだけになりますので、デフォルトの状態(BorderStyle:=bsSizeable)では、ウィンドウ枠等が含まれてしまいます。きれいに表示させるには、ウィンドウ枠を表示させない状態(BorderStyle:=bsNone)に設定します。
procedure TForm1.FormCreate(Sender: TObject);
var
rgn:Cardinal;
begin
rgn:=CreateRoundRectRgn(0,0,200,200,32,32);
SetWindowRgn(Handle,Rgn,True);
end;
BorderStyle:=bsNone の場合
BorderStyle:=bsSizeableの場合
著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用