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
GraphicsPathIterator::CopyData