CRgn::CreatePolyPolygonRgn
一連のクローズ多角形で構成される領域を作成します。
BOOL CreatePolyPolygonRgn(
LPPOINT lpPoints,
LPINT lpPolyCounts,
int nCount,
int nPolyFillMode
);
パラメーター
lpPoints
[ポイント] の構造体の配列または多角形の頂点を定義する CPoint のオブジェクトの配列へのポインター。 各多角形は、システムがそれらを自動的にため、明示的に閉じる必要があります。 多角形は連続的に指定されます。 [ポイント] の構造体には、次の形式があります:typedef struct tagPOINT {
int x;
int y;
} POINT;
lpPolyCounts
整数の配列へのポインター。 最初の整数は 2 番目の多角形の lpPoints 配列の最初の多角形の頂点の数を、2 番目の整数を指定します頂点の数などを指定します。nCount
lpPolyCounts の配列で整数の合計数を指定します。nPolyFillMode
多角形塗りつぶしモードを指定します。 この値は ALTERNATE または WINDINGである場合があります。
戻り値
操作が成功する場合は、; それ以外の場合は 0。
解説
結果の領域は CRgn のオブジェクトに格納されます。
多角形は非表示か、または重複することがあります。
領域のサイズは 32,767 の論理単位またはメモリの 32,767 KB により小さい、どの場合でも、制限されます。
多角形塗りつぶしモードを ALTERNATEの場合、システムは各スキャン ラインの偶数と奇数の多角形の側との間で領域を塗りつぶします。 つまり、1 番目と 2 番目のサイド間の領域を、3 番目と 4 番目の間などで塗りつぶします。
多角形塗りつぶしモードを WINDINGの場合、システムは判断する領域を塗りつぶすに図を描画方向かどうかを使用します。 多角形の各線分が時計回りまたは反時計回りで描画されます。 かっこで囲まれた領域から図の外側に描画と行が時計回りの線分を通過するたびに、カウントがインクリメントされます。 行が左回りの線分を通過すると、カウントがデクリメントされます。 領域は、行が図の外部に到達すると、カウントがゼロ以外の場合は塗りつぶされます。
アプリケーションは CreatePolyPolygonRgn 関数で作成された領域を使い終わったらデバイス コンテキストから領域を選択し、それを削除するに CGDIObject::DeleteObject のメンバー関数を使用する必要があります。
必要条件
ヘッダー: afxwin.h