Compartir a través de


Método GraphicsPathIterator::Enumerate (gdipluspath.h)

El método GraphicsPathIterator::Enumerate copia los puntos de datos de la ruta de acceso a una matriz PointF y copia los tipos de punto de la ruta de acceso a una matriz BYTE .

Sintaxis

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

Parámetros

[out] points

Tipo: PointF*

Puntero a una matriz que recibe los puntos de datos de la ruta de acceso.

[out] types

Tipo: BYTE*

Puntero a una matriz que recibe los tipos de punto de la ruta de acceso.

[in] count

Tipo: INT

Entero que especifica el número de elementos de la matriz de puntos . Es el mismo que el número de elementos de la matriz de tipos .

Valor devuelto

Tipo: INT

Este método devuelve el número de puntos recuperados.

Comentarios

Este objeto GraphicsPathIterator está asociado a un objeto GraphicsPath . Ese 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 .

Puede llamar al método GraphicsPathIterator::GetCount para determinar el número de puntos de datos de la ruta de acceso. El parámetro points apunta a un búfer que recibe los puntos de datos y el parámetro types apunta a un búfer que recibe los tipos. Antes de llamar al método GraphicsPathIterator::Enumerate , debe asignar memoria para esos búferes. El tamaño del búfer de puntos debe ser el valor devuelto de GraphicsPathIterator::GetCount multiplicado por sizeof(PointF). El tamaño del búfer de tipos debe ser el valor devuelto de GraphicsPathIterator::GetCount.

Ejemplos

En el ejemplo siguiente se crea un objeto GraphicsPath y se agregan tres líneas a la ruta de acceso. El código crea un objeto GraphicsPathIterator y llama a su método GraphicsPathIterator::Enumerate para recuperar los puntos de datos y los tipos de punto de la ruta de acceso. A continuación, el código muestra el recuento devuelto por el método GraphicsPathIterator::Enumerate .


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

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

Crear y dibujar trazados

GetPathData

Métodos GetPathPoints

GetPathTypes

GetPointCount

Graphicspath

GraphicsPathIterator

GraphicsPathIterator::CopyData

GraphicsPathIterator::GetCount

Paths