Freigeben über


GraphicsPathIterator::CopyData-Methode (gdipluspath.h)

Die GraphicsPathIterator::CopyData-Methode kopiert eine Teilmenge der Datenpunkte des Pfads in ein PointF-Array und kopiert eine Teilmenge der Punkttypen des Pfads in ein BYTE-Array .

Syntax

INT CopyData(
  [out] PointF *points,
  [out] BYTE   *types,
  [in]  INT    startIndex,
  [in]  INT    endIndex
);

Parameter

[out] points

Typ: PointF*

Zeiger auf ein Array, das eine Teilmenge der Datenpunkte des Pfads empfängt.

[out] types

Typ: BYTE*

Zeiger auf ein Array, das eine Teilmenge der Punkttypen des Pfads empfängt.

[in] startIndex

Typ: INT

Ganzzahl, die den Startindex der zu kopierenden Punkte und Typen angibt.

[in] endIndex

Typ: INT

Ganzzahl, die den Endindex der zu kopierenden Punkte und Typen angibt.

Rückgabewert

Typ: INT

Diese Methode gibt die Anzahl der kopierten Punkte zurück. Dies entspricht der Anzahl der kopierten Typen.

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.

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::CopyData-Methode auf, um die Punkte und Punkttypen des Pfads abzurufen. Anschließend zeigt der Code die Anzahl an, die von der GraphicsPathIterator::CopyData-Methode zurückgegeben wird.


#define BUFFER_SIZE 30
TCHAR numPointsCopied[BUFFER_SIZE];

// Create the points for three lines in a path.
Point pts[] = { Point(20, 20), 
                Point(100, 20), 
                Point(100, 50), 
                Point(20, 50) };
GraphicsPath path;
path.AddLines(pts, 4); // Add the lines to the path.

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

// Create destination arrays, and copy the path data to them.
PointF* pCopiedPoints = new PointF[4]; 
BYTE* pTypes = new BYTE[4];
INT count = pathIterator.CopyData(pCopiedPoints, pTypes, 0, 3);

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

MessageBox(hWnd, numPointsCopied, TEXT("CopyData"), NULL);

delete[] pCopiedPoints;
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::Enumerate

GraphicsPathIterator::GetCount

Paths