Compartir a través de


Método GraphicsPath::GetPathData (gdipluspath.h)

El método GraphicsPath::GetPathData obtiene una matriz de puntos y una matriz de tipos de punto de esta ruta de acceso. Juntas, estas dos matrices definen las líneas, las curvas, las figuras y los marcadores de esta ruta de acceso.

Sintaxis

Status GetPathData(
  [out] PathData *pathData
);

Parámetros

[out] pathData

Tipo: PathData*

Puntero a un objeto PathData que recibe los datos de la ruta de acceso. El miembro de datos Points del objeto PathData recibe un puntero a una matriz de objetos PointF que contiene los puntos de ruta de acceso. El miembro de datos Types del objeto PathData recibe un puntero a una matriz de bytes que contiene los tipos de punto. El miembro de datos Count del objeto PathData recibe un entero que indica el número de elementos de la matriz Points .

Valor devuelto

Tipo: Estado

Si el método se ejecuta correctamente, devuelve Ok, que es un elemento de la enumeración Status .

Si se produce un error en el método, devuelve uno de los otros elementos de la enumeración Status .

Comentarios

Un objeto GraphicsPath tiene una matriz de puntos y una matriz de tipos. Cada elemento de la matriz de tipos es un byte que especifica el tipo de punto y un conjunto de marcas para el elemento correspondiente en la matriz de puntos. Los posibles tipos y marcas de punto se muestran en la enumeración PathPointType .

No es necesario asignar ni desasignar memoria para la matriz de puntos o la matriz de tipos. El método GraphicsPath::GetPathData asigna memoria para las matrices (puntos y tipos) que devuelve. El destructor PathData desasigna la memoria de esas matrices.

Ejemplos

En el ejemplo siguiente se crea y dibuja una ruta de acceso que tiene una línea, un rectángulo, una elipse y una curva. El código obtiene los puntos y tipos de la ruta de acceso pasando la dirección de un objeto PathData al método GraphicsPath::GetPathData . A continuación, el código dibuja cada uno de los puntos de datos de la ruta de acceso.

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);
   }
}

Requisitos

Requisito Value
Cliente mínimo compatible Windows XP, Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado gdipluspath.h (incluya Gdiplus.h)
Library Gdiplus.lib
Archivo DLL Gdiplus.dll

Consulte también

Recorte con una región

Crear y dibujar trazados

Crear un degradado de trazado

Métodos GetPathPoints

Graphicspath

GraphicsPath::GetPathTypes

GraphicsPath::GetPointCount

PathData

PathPointType

Paths

PointF