ウィンドウの形を四角以外にする
ウィンドウを四角以外、例えば楕円や多角形にするにはリージョンを使用します。リージョンは CreateRectRgn API や CreateEllipticRgn API を使って作成します。作成したリージョンを SetWindowRgnでウィンドウと合成して完了です。以下のサンプルはウィンドウを三角形にします。
| ■ ウィンドウの形を三角形にする例 |
procedure TForm1.FormCreate(Sender: TObject);
var
Rgn1 : HRgn;
pntXY : array [0..3] of TPoint;
begin
{ 多角形の作成 }
pntXY[0].x := 0;
pntXY[0].y := 0;
pntXY[1].x := width div 2;
pntXY[1].y := height;
pntXY[2].x := width;
pntXY[2].y := 0;
pntXY[3].x := 0;
pntXY[3].y := 0;
{ リージョンの割り当て }
Rgn1 := CreatePolygonRgn(pntXY, 3, Winding);
SetWindowRgn(Handle, Rgn1, True);
end;
|
| CreateEllipticRgn | 楕円リージョンの作成 |
| CreateEllipticRgnIndirect | 楕円リージョンの作成(Rect使用) |
| CreatePolygonRgn | 多角形リージョンの作成 |
| CreatePolyPolygonRgn | 複数の多角形リージョンの作成 |
| CreateRectRgn | 長方形リージョンの作成 |
| CreateRectRgnIndirect | 長方形リージョンの作成(Rect使用) |
| CreateRoundRectRgn | 角の丸い長方形リージョンの作成 |
| CombineRgn | ふたつのリージョンを合成する |