Freigeben über


GraphicsPath::GetPathData-Methode (gdipluspath.h)

Die GraphicsPath::GetPathData-Methode ruft ein Array von Punkten und ein Array von Punkttypen aus diesem Pfad ab. Zusammen definieren diese beiden Arrays die Linien, Kurven, Abbildungen und Marker dieses Pfads.

Syntax

Status GetPathData(
  [out] PathData *pathData
);

Parameter

[out] pathData

Typ: PathData*

Zeiger auf ein PathData-Objekt , das die Pfaddaten empfängt. Der Point-Datenmember des PathData-Objekts empfängt einen Zeiger auf ein Array von PointF-Objekten , das die Pfadpunkte enthält. Das Types-Datenmember des PathData-Objekts empfängt einen Zeiger auf ein Bytearray, das die Punkttypen enthält. Der Count-Datenmember des PathData-Objekts empfängt eine ganze Zahl, die die Anzahl der Elemente im Points-Array angibt.

Rückgabewert

Typ: Status

Wenn die Methode erfolgreich ist, gibt sie OK zurück, ein Element der Status-Enumeration .

Wenn die Methode fehlschlägt, wird eines der anderen Elemente der Status-Enumeration zurückgegeben.

Hinweise

Ein 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 einen Satz von Flags für das entsprechende Element im Array von Punkten angibt. Mögliche Punkttypen und Flags werden in der PathPointType-Enumeration aufgeführt.

Sie müssen den Speicher für das Array von Punkten oder das Array von Typen nicht zuordnen oder die Zuordnung aufheben. Die GraphicsPath::GetPathData-Methode ordnet Arbeitsspeicher für die arrays (Punkte und Typen) zu, die sie zurückgibt. Der PathData-Destruktor gibt die Zuordnung des Arbeitsspeichers für diese Arrays auf.

Beispiele

Im folgenden Beispiel wird ein Pfad mit einer Linie, einem Rechteck, einer Ellipse und einer Kurve erstellt und zeichnert. Der Code ruft die Punkte und Typen des Pfads ab, indem die Adresse eines PathData-Objekts an die GraphicsPath::GetPathData-Methode übergeben wird. Anschließend zeichnet der Code jeden Datenpunkt des Pfads.

VOID GetPathDataExample(HDC hdc)
{
   Graphics graphics(hdc);

   // Create a path that has a line, a rectangle, an ellipse, and a curve.
   GraphicsPath path;
   
   PointF points[] = {
      PointF(200, 200),
      PointF(250, 240),
      PointF(200, 300),
      PointF(300, 310),
      PointF(250, 350)};

   path.AddLine(20, 100, 150, 200);
   path.AddRectangle(Rect(40, 30, 80, 60));
   path.AddEllipse(Rect(200, 30, 200, 100));
   path.AddCurve(points, 5);

   // Draw the path.
   Pen pen(Color(255, 0, 0, 255));
   graphics.DrawPath(&pen, &path);

   // Get the path data.
   PathData pathData;
   path.GetPathData(&pathData);

   // Draw the path's data points.
   SolidBrush brush(Color(255, 255, 0, 0));
   for(INT j = 0; j < pathData.Count; ++j)
   {
      graphics.FillEllipse(
         &brush, 
         pathData.Points[j].X - 3.0f, 
         pathData.Points[j].Y - 3.0f,
         6.0f,
         6.0f);
   }
}

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

Beschneiden mit einer Region

Erstellen und Zeichnen von Pfaden

Erstellen eines Pfadverlaufs

GetPathPoints-Methoden

Graphicspath

GraphicsPath::GetPathTypes

GraphicsPath::GetPointCount

Pathdata

Pathpointtype

Paths

Pointf