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