HRGN CreateEllipticRgnIndirect(CONST RECT *r);
Declare Function CreateEllipticRgnIndirect Lib "gdi32" (ByRef r As RECT) As Long
CreateEllipticRgnとの違いは、境界長方形の座標をRECT構造体で指定する点である。
引数の意味は以下の通り。
| r | 作成する楕円形に外接する境界長方形の座標。 |
戻り値は作成結果のリージョンのハンドルである。関数の実行に失敗した場合、NULLが返される。
' 交差する二つの円からなるリージョンを描画
Private Sub Command1_Click()
Dim hRgn1 As Long
Dim hRgn2 As Long
Dim r As RECT
'リージョンの作成
r.Left = 0
r.Top = 0
r.Right = 100
r.Bottom = 100
hRgn1 = CreateEllipticRgnIndirect(r)
r.Left = 50
r.Top = 50
r.Right = 150
r.Bottom = 150
hRgn2 = CreateEllipticRgnIndirect(r)
'リージョンの結合
CombineRgn hRgn1, hRgn1, hRgn2, RGN_XOR
'リージョンの描画
FillRgn Picture1.hDC, hRgn1, GetStockObject(WHITE_BRUSH)
'後処理
DeleteObject hRgn1
DeleteObject hRgn2
End Sub