Share via


GraphicsPathIterator ::NextMarker(INT*,INT*) , méthode (gdipluspath.h)

La méthode GraphicsPathIterator ::NextMarker obtient l’index de départ et l’index de fin de la section délimitée par les marqueurs suivante dans le chemin associé de cet itérateur.

Syntaxe

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

Paramètres

startIndex

Pointeur vers un INT qui reçoit l’index de départ.

endIndex

Pointeur vers un INT qui reçoit l’index de fin.

Valeur retournée

Cette méthode retourne le nombre de points de données dans la section récupérée. S’il n’y a plus de sections délimitées par des marqueurs à récupérer, cette méthode retourne 0.

Remarques

Un chemin a un tableau de points de données qui définissent ses lignes et ses courbes. Vous pouvez appeler la méthode SetMarker d’un chemin d’accès pour désigner certains points du tableau en tant que marqueurs. Ces points de marqueur divisent le chemin en sections.

La première fois que vous appelez la méthode GraphicsPathIterator ::NextMarker d’un itérateur, il obtient la première section délimitée par des marqueurs du chemin associé de cet itérateur. La deuxième fois, il obtient la deuxième section, et ainsi de suite. Chaque fois que vous appelez GraphicsPathIterator ::NextSubpath, il retourne le nombre de points de données dans la section récupérée. Lorsqu’il n’y a aucune section restante, elle retourne 0.

Exemples

L’exemple suivant crée un objet GraphicsPath et ajoute cinq figures au chemin. Les appels à la méthode SetMarker placent deux marqueurs dans le chemin. Le premier marqueur se trouve à la fin d’une figure, et le deuxième marqueur se trouve au milieu d’une figure. Le code passe l’adresse de l’objet GraphicsPath à un constructeur GraphicsPathIterator pour créer un itérateur associé au chemin. Ensuite, le code appelle la méthode GraphicsPathIterator ::NextMarker de l’itérateur deux fois pour obtenir les index de début et de fin de la deuxième section délimitée par des marqueurs du chemin. Enfin, le code dessine les points de données qui appartiennent à la deuxième section délimitée par des marqueurs du chemin.

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;
}

Configuration requise

Condition requise Valeur
En-tête gdipluspath.h

Voir aussi

Génération et dessin de tracés

Graphicspath

GraphicsPathIterator ::NextMarker, méthodes

GraphicsPathIterator

GraphicsPathIterator ::CopyData

GraphicsPathIterator ::NextMarker, méthodes

Chemins d’accès