Método GraphicsPathIterator::NextSubpath(constGraphicsPath*,BOOL*) (gdipluspath.h)

O método GraphicsPathIterator::NextSubpath obtém a próxima figura (subcaminho) do caminho associado desse iterador.

Sintaxe

INT NextSubpath(
  [out] const GraphicsPath *path,
  [out] BOOL               *isClosed
);

Parâmetros

[out] path

Tipo: GraphicsPath*

Ponteiro para um objeto GraphicsPath . Esse método define os pontos de dados deste objeto GraphicsPath para corresponder aos pontos de dados da figura recuperada.

[out] isClosed

Tipo: BOOL*

Ponteiro para um BOOL que recebe um valor que indica se a figura recuperada está fechada. Se a figura for fechada, o valor recebido será TRUE; caso contrário, o valor recebido será FALSE.

Retornar valor

Tipo: INT

Esse método retorna o número de pontos de dados na figura recuperada. Se não houver mais números a serem recuperados, esse método retornará 0.

Comentários

Na primeira vez que você chamar o método GraphicsPathIterator::NextSubpath de um iterador, ele obterá a primeira figura (subcaminho) do caminho associado desse iterador. Na segunda vez, ele obtém a segunda figura, e assim por diante. Cada vez que você chama GraphicsPathIterator::NextSubpath, ele retorna o número de pontos de dados na figura recuperada. Quando não há números restantes, ele retorna 0.

Exemplos

O exemplo a seguir cria um objeto GraphicsPath e adiciona cinco figuras (também chamadas de subcaminhos) ao caminho. O código passa o endereço do objeto GraphicsPath para um construtor GraphicsPathIterator para criar um iterador associado ao caminho. O código chama o método GraphicsPathIterator::NextSubpath do iterador duas vezes para recuperar a segunda figura (subcaminho) do caminho. Em seguida, o código chama o método DrawPath de um objeto Graphics para desenhar esse subcaminho individual.


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

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

   path.AddRectangle(Rect(20, 20, 60, 30));   // Subpath count is 1.

   path.AddLine(100, 20, 160, 50);            // Subpath count is 2.
   path.AddArc(180, 20, 60, 30, 0.0f, 180.0f);

   path.AddRectangle(Rect(260, 20, 60, 30));  // Subpath count is 3.

   path.AddLine(340, 20, 400, 50);            // Subpath count is 4.
   path.AddArc(340, 20, 60, 30, 0.0f, 180.0f);
   path.CloseFigure();
  
   path.AddRectangle(Rect(420, 20, 60, 30));  // Subpath count is 5.
 
   // Create an iterator, and associate it with the path.
   GraphicsPathIterator iterator(&path);

   // Get the second subpath by calling NextSubpath twice.
   GraphicsPath subpath;
   BOOL isClosed;
   INT count;
   count = iterator.NextSubpath(&subpath, &isClosed);
   count = iterator.NextSubpath(&subpath, &isClosed);

   // The variable "count" now holds the number of 
   // data points in the second subpath.

   // Draw the retrieved subpath.
   Pen bluePen(Color(255, 0, 0, 255));
   graphics.DrawPath(&bluePen, &subpath);
}

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

Graphicspath

Graphicspathiterator

GraphicsPathIterator::GetSubpathCount

Métodos GraphicsPathIterator::NextMarker

Nextsubpath

Caminhos