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

El método GraphicsPathIterator::NextMarker obtiene el índice inicial y el índice final de la siguiente sección delimitada por marcador en la ruta de acceso asociada del iterador.

Sintaxis

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

Parámetros

startIndex

Puntero a un INT que recibe el índice inicial.

endIndex

Puntero a un INT que recibe el índice final.

Valor devuelto

Este método devuelve el número de puntos de datos de la sección recuperada. Si no hay más secciones delimitadas por marcadores para recuperar, este método devuelve 0.

Comentarios

Una ruta de acceso tiene una matriz de puntos de datos que definen sus líneas y curvas. Puede llamar al método SetMarker de una ruta de acceso para designar determinados puntos de la matriz como marcadores. Esos puntos de marcador dividen la ruta de acceso en secciones.

La primera vez que llames al método GraphicsPathIterator::NextMarker de un iterador , obtiene la primera sección delimitada por marcador de la ruta de acceso asociada del iterador. La segunda vez, obtiene la segunda sección, etc. Cada vez que se llama a GraphicsPathIterator::NextSubpath, devuelve el número de puntos de datos de la sección recuperada. Cuando no quedan secciones, devuelve 0.

Ejemplos

En el ejemplo siguiente se crea un objeto GraphicsPath y se agregan cinco figuras a la ruta de acceso. Las llamadas al método SetMarker colocan dos marcadores en la ruta de acceso. El primer marcador está al final de una figura y el segundo marcador está en medio de una figura. El código pasa la dirección del objeto GraphicsPath a un constructor GraphicsPathIterator para crear un iterador asociado a la ruta de acceso. A continuación, el código llama al método GraphicsPathIterator::NextMarker del iterador dos veces para obtener los índices iniciales y finales de la segunda sección delimitada por marcador de la ruta de acceso. Por último, el código dibuja los puntos de datos que pertenecen a la segunda sección delimitada por marcador de la ruta de acceso.

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
Header gdipluspath.h

Consulte también

Crear y dibujar trazados

Graphicspath

GraphicsPathIterator::NextMarker (Métodos)

GraphicsPathIterator

GraphicsPathIterator::CopyData

GraphicsPathIterator::NextMarker (Métodos)

Paths