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 |