HRGN CreatePolyPolygonRgn( CONST POINT *PointArray, CONST INT *CountArray, int CountNum, int PolyFillMode);
Declare Function CreatePolyPolygonRgn Lib "gdi32" ( _
ByRef PointArray As POINT, _
ByRef CountArray As Long, _
ByVal CountNum As Long, _
ByVal PolyFillMode As Long) As Long
引数の意味は以下の通り。
| PointArray | 複数の多角形の各頂点の座標の配列。 |
| CountArray | 各多角形の頂点の個数の配列。 |
| CountNum | 多角形の数。 |
| PolyFillMode | 塗りつぶしモード。指定可能な値についてはCreatePolygonRgnを参照。 |
戻り値は、作成結果のリージョンのハンドルである。関数の実行に失敗した場合、NULLが返される。
'複数の図形からなるリージョンの描画
Private Sub Command1_Click()
Const PI As Single = 3.14159
Dim p(100) As POINT
Dim c(2) As Long
Dim hRgn As Long
Dim I As Long
Dim M As Long
Dim N As Long
'リージョン作成用データ描画
I = 0
For N = 5 To 9 Step 2
For M = 0 To N - 1
p(I).X = 100 * Cos(2 * PI * M * 2 / N) + 100 + (N - 5) / 2 * 100
p(I).Y = 100 * Sin(2 * PI * M * 2 / N) + 100
I = I + 1
Next
Next
c(0) = 5
c(1) = 7
c(2) = 9
'リージョンの作成
hRgn = CreatePolyPolygonRgn(p(0), c(0), 3, ALTERNATE)
'リージョンの描画
FillRgn Picture1.hDC, hRgn, GetStockObject(WHITE_BRUSH)
'リージョンの破棄
DeleteObject hRgn
End Sub