ウィンドウの形を四角以外にする
ウィンドウを四角以外、例えば楕円や多角形にするにはリージョンを使用します。リージョンは 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 | ふたつのリージョンを合成する |