Freigeben über


GraphicsPathIterator::Enumerate-Methode (gdipluspath.h)

Die GraphicsPathIterator::Enumerate-Methode kopiert die Datenpunkte des Pfads in ein PointF-Array und kopiert die Punkttypen des Pfads in ein BYTE-Array .

Syntax

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

Parameter

[out] points

Typ: PointF*

Zeiger auf ein Array, das die Datenpunkte des Pfads empfängt.

[out] types

Typ: BYTE*

Zeiger auf ein Array, das die Punkttypen des Pfads empfängt.

[in] count

Typ: INT

Ganzzahl, die die Anzahl der Elemente im Punktarray angibt. Dies entspricht der Anzahl der Elemente im Array der Typen .

Rückgabewert

Typ: INT

Diese Methode gibt die Anzahl der abgerufenen Punkte zurück.

Hinweise

Dieses GraphicsPathIterator-Objekt ist einem GraphicsPath-Objekt zugeordnet. Dieses GraphicsPath-Objekt verfügt über ein Array von Punkten und ein Array von Typen. Jedes Element im Array von Typen ist ein Byte, das den Punkttyp und eine Reihe von Flags für das entsprechende Element im Array von Punkten angibt. Mögliche Punkttypen und Flags sind in der PathPointType-Enumeration aufgeführt.

Sie können die GraphicsPathIterator::GetCount-Methode aufrufen, um die Anzahl der Datenpunkte im Pfad zu bestimmen. Der Punktparameter verweist auf einen Puffer, der die Datenpunkte empfängt, und der types-Parameter auf einen Puffer, der die Typen empfängt. Bevor Sie die GraphicsPathIterator::Enumerate-Methode aufrufen, müssen Sie diesen Puffern Arbeitsspeicher zuweisen. Die Größe des Punktpuffers sollte der Rückgabewert von GraphicsPathIterator::GetCount multipliziert mit sizeof(PointF)sein. Die Größe des Puffertyps sollte der Rückgabewert von GraphicsPathIterator::GetCount sein.

Beispiele

Im folgenden Beispiel wird ein GraphicsPath-Objekt erstellt und dem Pfad drei Zeilen hinzugefügt. Der Code erstellt ein GraphicsPathIterator-Objekt und ruft seine GraphicsPathIterator::Enumerate-Methode auf, um die Datenpunkte und Punkttypen des Pfads abzurufen. Anschließend zeigt der Code die Anzahl an, die von der GraphicsPathIterator::Enumerate-Methode zurückgegeben wird.


#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;

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows XP, Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile gdipluspath.h (include Gdiplus.h)
Bibliothek Gdiplus.lib
DLL Gdiplus.dll

Weitere Informationen

Erstellen und Zeichnen von Pfaden

GetPathData

GetPathPoints-Methoden

GetPathTypes

GetPointCount

Graphicspath

Graphicspathiterator

GraphicsPathIterator::CopyData

GraphicsPathIterator::GetCount

Paths