Condividi tramite


CRgn::CreatePolyPolygonRgn

Crea un'area costituita da una serie di poligoni chiusi.

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

Parametri

  • lpPoints
    Punta a una matrice di strutture di punti o a una matrice di oggetti CPoint che definisce i vertici poligoni.Ogni poligono deve essere esplicitamente chiuso perché il sistema non si chiude automaticamente.I poligoni consecutivamente vengono specificati.La struttura di punti ha il formato seguente:

    typedef struct tagPOINT {

    int x;

    int y;

    } POINT;

  • lpPolyCounts
    Punta a una matrice di Integer.Il primo Integer specifica il numero di vertici nel primo poligono nella matrice lpPoints, il secondo Integer specifica il numero di vertici nel secondo poligono, e così via.

  • nCount
    Specifica il numero totale di Integer nella matrice lpPolyCounts.

  • nPolyFillMode
    Specifica la modalità di riempimento poligoni.Questo valore può essere ALTERNATE o WINDING.

Valore restituito

Diverso da zero se l'operazione ha esito positivo; in caso contrario 0.

Note

L'area risultante viene memorizzata nell'oggetto CRgn.

I poligoni possono essere disgiunte, o possono sovrapporsi.

La dimensione di un'area è limitata a 32.767 per 32.767 unità logiche o della memoria, le dimensioni inferiori.

Quando la modalità di riempimento poligoni è ALTERNATE, il sistema riempie l'area tra i lati di numero dispari e pari del poligono su ogni riga di digitalizzazione.Ovvero il sistema riempie l'area tra il primo e il secondo, tra terzo argomento e quarto lato, e così via.

Quando la modalità di riempimento poligoni è WINDING, il sistema utilizza la direzione in cui una figura è stata disegnata per determinare se riempire un'area.Ogni segmento di riga in un poligono viene disegnato in un senso antiorario in senso orario o.Ogni volta che una linea immaginaria tracciata da un'area all'esterno di una figura attraversa un segmento di riga in senso orario, un conteggio viene incrementato.Quando la riga passa attraverso un segmento di riga in senso antiorario, il numero viene decrementato.L'area viene soddisfatta quando il conteggio è diverso da zero quando raggiunge la riga al di fuori della figura.

Quando un'applicazione viene terminato l'utilizzo di un'area creata con la funzione CreatePolyPolygonRgn, deve selezionare l'area dal contesto di dispositivo e utilizzare la funzione membro CGDIObject::DeleteObject per rimuoverlo.

Requisiti

Header: afxwin.h

Vedere anche

Riferimenti

Classe CRgn

Grafico della gerarchia

CRgn::CreatePolygonRgn

CDC::SetPolyFillMode

CreatePolyPolygonRgn