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

O método GraphicsPathIterator::CopyData copia um subconjunto dos pontos de dados do caminho para uma matriz PointF e copia um subconjunto dos tipos de ponto do caminho para uma matriz BYTE .

Sintaxe

INT CopyData(
  [out] PointF *points,
  [out] BYTE   *types,
  [in]  INT    startIndex,
  [in]  INT    endIndex
);

Parâmetros

[out] points

Tipo: PointF*

Ponteiro para uma matriz que recebe um subconjunto dos pontos de dados do caminho.

[out] types

Tipo: BYTE*

Ponteiro para uma matriz que recebe um subconjunto dos tipos de ponto do caminho.

[in] startIndex

Tipo: INT

Inteiro que especifica o índice inicial dos pontos e tipos a serem copiados.

[in] endIndex

Tipo: INT

Inteiro que especifica o índice final dos pontos e tipos a serem copiados.

Retornar valor

Tipo: INT

Esse método retorna o número de pontos copiados. Isso é o mesmo que o número de tipos copiados.

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. 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.

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::CopyData para recuperar os pontos e tipos de ponto do caminho. Em seguida, o código exibe a contagem retornada pelo método GraphicsPathIterator::CopyData .


#define BUFFER_SIZE 30
TCHAR numPointsCopied[BUFFER_SIZE];

// Create the points for three lines in a path.
Point pts[] = { Point(20, 20), 
                Point(100, 20), 
                Point(100, 50), 
                Point(20, 50) };
GraphicsPath path;
path.AddLines(pts, 4); // Add the lines to the path.

// Create a GraphicsPathIterator object and associate it with the path. 
GraphicsPathIterator pathIterator(&path);

// Create destination arrays, and copy the path data to them.
PointF* pCopiedPoints = new PointF[4]; 
BYTE* pTypes = new BYTE[4];
INT count = pathIterator.CopyData(pCopiedPoints, pTypes, 0, 3);

// Confirm that the points copied.
StringCchPrintf(
   numPointsCopied, BUFFER_SIZE, TEXT("%d points were copied."), count);

MessageBox(hWnd, numPointsCopied, TEXT("CopyData"), NULL);

delete[] pCopiedPoints;
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::Enumerate

GraphicsPathIterator::GetCount

Caminhos