Compartilhar via


Método GraphicsPathIterator::NextMarker(INT*,INT*) (gdipluspath.h)

O método GraphicsPathIterator::NextMarker obtém o índice inicial e o índice final da próxima seção delimitada por marcadores no caminho associado desse iterador.

Sintaxe

INT NextMarker(
  INT *startIndex,
  INT *endIndex
);

Parâmetros

startIndex

Ponteiro para um INT que recebe o índice inicial.

endIndex

Ponteiro para um INT que recebe o índice final.

Retornar valor

Esse método retorna o número de pontos de dados na seção recuperada. Se não houver mais seções delimitadas por marcador para recuperar, esse método retornará 0.

Comentários

Um caminho tem uma matriz de pontos de dados que definem suas linhas e curvas. Você pode chamar o método SetMarker de um caminho para designar determinados pontos na matriz como marcadores. Esses pontos de marcador dividem o caminho em seções.

Na primeira vez que você chamar o método GraphicsPathIterator::NextMarker de um iterador, ele obtém a primeira seção delimitada por marcador do caminho associado desse iterador. Na segunda vez, ele obtém a segunda seção e assim por diante. Sempre que você chama GraphicsPathIterator::NextSubpath, ele retorna o número de pontos de dados na seção recuperada. Quando não há seções restantes, ele retorna 0.

Exemplos

O exemplo a seguir cria um objeto GraphicsPath e adiciona cinco figuras ao caminho. As chamadas para o método SetMarker colocam dois marcadores no caminho. O primeiro marcador está no final de uma figura e o segundo marcador está no meio de uma figura. O código passa o endereço do objeto GraphicsPath para um construtor GraphicsPathIterator para criar um iterador associado ao caminho. Em seguida, o código chama o método GraphicsPathIterator::NextMarker do iterador duas vezes para obter os índices inicial e final da segunda seção delimitada por marcador do caminho. Por fim, o código desenha os pontos de dados que pertencem à segunda seção delimitada por marcador do caminho.

VOID NextMarkerExample2(HDC hdc)
{
   Graphics graphics(hdc);

   // Create a graphics path with five figures (subpaths).
   GraphicsPath path;

   path.AddRectangle(Rect(20, 20, 60, 30));

   path.SetMarker();                          // first marker
   path.AddLine(100, 20, 160, 50);
   path.AddArc(180, 20, 60, 30, 0, 180);

   path.AddRectangle(Rect(260, 20, 60, 30));
   path.AddLine(340, 20, 400, 50);
   path.SetMarker();                          // second marker
   path.AddArc(340, 20, 60, 30, 0, 180);
   path.CloseFigure();
  
   path.AddRectangle(Rect(420, 20, 60, 30));

   // Create an iterator, and associate it with the path.
   GraphicsPathIterator iterator(&path);

   // Get the second marker-delimited section by calling NextMarker twice.
   INT start;
   INT end;
   INT count;
   count = iterator.NextMarker(&start, &end);
   count = iterator.NextMarker(&start, &end);

   // Get the data points of the second marker-delimited section.
   PointF* points = new PointF[count];
   BYTE* types = new BYTE[count];
   iterator.CopyData(points, types, start, end);

   // Draw the data points of the second marker-delimited section.
   SolidBrush brush(Color(255, 255, 0, 0));
   for(INT j = 0; j < count; ++j)
      graphics.FillEllipse(
         &brush,
         points[j].X - 3.0f,
         points[j].Y - 3.0f,
         6.0f,
         6.0f);

   delete points;
   delete types;
}

Requisitos

Requisito Valor
Cabeçalho gdipluspath.h

Confira também

Construindo e desenhando demarcadores

Graphicspath

Métodos GraphicsPathIterator::NextMarker

Graphicspathiterator

GraphicsPathIterator::CopyData

Métodos GraphicsPathIterator::NextMarker

Caminhos