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

O método GraphicsPathIterator::Enumerate copia os pontos de dados do caminho para uma matriz PointF e copia os tipos de ponto do caminho para uma matriz BYTE .

Sintaxe

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

Parâmetros

[out] points

Tipo: PointF*

Ponteiro para uma matriz que recebe os pontos de dados do caminho.

[out] types

Tipo: BYTE*

Ponteiro para uma matriz que recebe os tipos de ponto do caminho.

[in] count

Tipo: INT

Inteiro que especifica o número de elementos na matriz de pontos . Isso é o mesmo que o número de elementos na matriz de tipos .

Retornar valor

Tipo: INT

Esse método retorna o número de pontos recuperados.

Comentários

Este objeto GraphicsPathIterator está associado a um objeto GraphicsPath . Esse objeto GraphicsPath tem uma matriz de pontos e uma matriz de tipos. Cada elemento na matriz de tipos é um byte que especifica o tipo de ponto e um conjunto de sinalizadores para o elemento correspondente na matriz de pontos. Os possíveis tipos de ponto e sinalizadores são listados na enumeração PathPointType .

Você pode chamar o método GraphicsPathIterator::GetCount para determinar o número de pontos de dados no caminho. O parâmetro points aponta para um buffer que recebe os pontos de dados e o parâmetro types aponta para um buffer que recebe os tipos. Antes de chamar o método GraphicsPathIterator::Enumerate , você deve alocar memória para esses buffers. O tamanho do buffer de pontos deve ser o valor retornado de GraphicsPathIterator::GetCount multiplicado por sizeof(PointF). O tamanho do buffer de tipos deve ser o valor retornado de GraphicsPathIterator::GetCount.

Exemplos

O exemplo a seguir cria um objeto GraphicsPath e adiciona três linhas ao caminho. O código cria um objeto GraphicsPathIterator e chama seu método GraphicsPathIterator::Enumerate para recuperar os pontos de dados e os tipos de ponto do caminho. Em seguida, o código exibe a contagem retornada pelo 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 Valor
Cliente mínimo com suporte Windows XP, Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho gdipluspath.h (inclua Gdiplus.h)
Biblioteca Gdiplus.lib
DLL Gdiplus.dll

Confira também

Construindo e desenhando demarcadores

GetPathData

Métodos GetPathPoints

GetPathTypes

GetPointCount

Graphicspath

Graphicspathiterator

GraphicsPathIterator::CopyData

GraphicsPathIterator::GetCount

Caminhos