Condividi tramite


Metodo GraphicsPathIterator::Enumerate (gdipluspath.h)

Il metodo GraphicsPathIterator::Enumerate copia i punti dati del percorso in una matrice PointF e copia i tipi di punti del percorso in una matrice BYTE .

Sintassi

INT Enumerate(
  [out] PointF *points,
  [out] BYTE   *types,
  [in]  INT    count
);

Parametri

[out] points

Tipo: PointF*

Puntatore a una matrice che riceve i punti dati del percorso.

[out] types

Tipo: BYTE*

Puntatore a una matrice che riceve i tipi di punto del percorso.

[in] count

Tipo: INT

Intero che specifica il numero di elementi nella matrice di punti . Si tratta dello stesso numero di elementi nella matrice dei tipi .

Valore restituito

Tipo: INT

Questo metodo restituisce il numero di punti recuperati.

Commenti

Questo oggetto GraphicsPathIterator è associato a un oggetto GraphicsPath . L'oggetto GraphicsPath include una matrice di punti e una matrice di tipi. Ogni elemento nella matrice di tipi è un byte che specifica il tipo di punto e un set di flag per l'elemento corrispondente nella matrice di punti. I tipi di punti e i flag possibili sono elencati nell'enumerazione PathPointType .

È possibile chiamare il metodo GraphicsPathIterator::GetCount per determinare il numero di punti dati nel percorso. Il parametro punti punta a un buffer che riceve i punti dati e il parametro tipi punta a un buffer che riceve i tipi. Prima di chiamare il metodo GraphicsPathIterator::Enumerate , è necessario allocare memoria per tali buffer. Le dimensioni del buffer dei punti devono essere il valore restituito di GraphicsPathIterator::GetCount moltiplicato per sizeof(PointF). Le dimensioni del buffer dei tipi devono essere il valore restituito di GraphicsPathIterator::GetCount.

Esempio

Nell'esempio seguente viene creato un oggetto GraphicsPath e vengono aggiunte tre righe al percorso. Il codice crea un oggetto GraphicsPathIterator e chiama il relativo metodo GraphicsPathIterator::Enumerate per recuperare i punti dati e i tipi di punto del percorso. Il codice visualizza quindi il conteggio restituito dal metodo GraphicsPathIterator::Enumerate .


#define BUFFER_SIZE 30
TCHAR numPointsEnum[BUFFER_SIZE];

// Add some lines to a path.
Point pts[] = {Point(20, 20), 
                Point(100, 20), 
                Point(100, 50), 
                Point(20, 50)};
GraphicsPath path;
path.AddLines(pts, 4);

// Create a GraphicsPathIterator object, and associate it with the path.
GraphicsPathIterator pathIterator(&path);

// Create destination arrays, and copy the path data to them.
UINT c = pathIterator.GetCount();
PointF* pEnumPoints = new PointF[c]; 
BYTE* pTypes = new BYTE[c];
INT count = pathIterator.Enumerate(pEnumPoints, pTypes, c);

// Confirm that the points were enumerated.
StringCchPrintf(
   numPointsEnum, BUFFER_SIZE, TEXT("%d points were enumerated."), count);

MessageBox(hWnd, numPointsEnum, TEXT("Enumerate"), NULL);

delete[] pEnumPoints;
delete[] pTypes;

Requisiti

Requisito Valore
Client minimo supportato Windows XP, Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione gdipluspath.h (include Gdiplus.h)
Libreria Gdiplus.lib
DLL Gdiplus.dll

Vedi anche

Costruzione e creazione di percorsi

GetPathData

Metodi GetPathPoints

GetPathTypes

GetPointCount

GraphicsPath

GraphicsPathIterator

GraphicsPathIterator::CopyData

GraphicsPathIterator::GetCount

Percorsi