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