CRgn::CreatePolyPolygonRgn

Erstellt einen Bereich, welche Zeilen aus geschlossenen Polygonen besteht.

BOOL CreatePolyPolygonRgn(
   LPPOINT lpPoints,
   LPINT lpPolyCounts,
   int nCount,
   int nPolyFillMode 
);

Parameter

  • lpPoints
    Punkte in einem Array POINT-Strukturen oder einem Array CPoint-Objekten, das die Eckpunkte der Polygone definiert.Jedes Polygon muss explizit geschlossen werden, da das System sie nicht automatisch geschlossen wird.Die Polygone werden nacheinander angegeben.Die POINT-Struktur hat das folgende Format:

    typedef struct tagPOINT {

    int x;

    int y;

    } POINT;

  • lpPolyCounts
    Punkte in einem Array von ganzen Zahlen.Die erste ganze Zahl gibt die Anzahl der Eckpunkte im ersten Polygon im lpPoints Array, die zweite ganze Zahl gibt die Anzahl der Eckpunkte im zweiten Polygon, usw. an.

  • nCount
    Gibt die Gesamtzahl von ganzen Zahlen im lpPolyCounts Array an.

  • nPolyFillMode
    Gibt den Polygonfüllungsmodus an.Dieser Wert kann entweder ALTERNATE oder WINDING.

Rückgabewert

Ungleich 0 (null), wenn der Vorgang erfolgreich war; 0 andernfalls.

Hinweise

Der resultierende Bereich wird im CRgn-Objekt gespeichert.

Die Polygone sind möglicherweise disjunkt, oder sie überschneiden sich.

Die Größe eines Bereichs ist auf 32.767 durch 32.767 logische Einheiten oder zu von je des Arbeitsspeichers beschränkt, das kleiner ist.

Wenn der Polygonfüllungsmodus ALTERNATE ist, stellt die Füllungen der Bereich zwischen ungeradem und geradem Polygon auf jeder Überprüfungszeile mit Seiten.Das heißt, die Füllungen der Bereich zwischen der ersten und zweiten Seite, zwischen dem dritten und vierten Seite, u. a.

Wenn der Polygonfüllungsmodus WINDING ist, verwendet das System die Richtung, in der eine Abbildung gezeichnet wurde, um zu bestimmen, ob ein Bereich ausfüllt.Jedes Liniensegment in einem Polygon wird entweder in einer Richtung oder im Uhrzeigersinn gegen den Uhrzeigersinn gezeichnet.Sobald eine gedachte Linie, die von einem eingeschlossenen Bereich zur außerhalb von übergibt einer Abbildung durch ein Liniensegment im Uhrzeigersinn, eine Anzahl gezeichnet wird, erhöht wird.Wenn die Zeilenübergaben durch ein Liniensegment gegen den Uhrzeigersinn, die Anzahl verringert wird.Der Bereich wird ausgefüllt, wenn die Anzahl ungleich 0 (null) ist, wenn die Zeile den außerhalb der Abbildung erreicht.

Wenn eine Anwendung mit eines Bereichs beendet, der mit der CreatePolyPolygonRgn-Funktion erstellt wird, sollte sie den Bereich aus dem Gerätekontext out auswählen und die CGDIObject::DeleteObject-Memberfunktion verwenden, um sie zu entfernen.

Anforderungen

Header: afxwin.h

Siehe auch

Referenz

CRgn-Klasse

Hierarchien-Diagramm

CRgn::CreatePolygonRgn

CDC::SetPolyFillMode

CreatePolyPolygonRgn