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
GraphicsPathIterator::CopyData