Condividi tramite


Metodo GraphicsPathIterator::NextMarker(INT*,INT*) (gdipluspath.h)

Il metodo GraphicsPathIterator::NextMarker ottiene l'indice iniziale e l'indice finale della sezione delimitata dall'indicatore successivo nel percorso associato di questo iteratore.

Sintassi

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

Parametri

startIndex

Puntatore a un inT che riceve l'indice iniziale.

endIndex

Puntatore a un INT che riceve l'indice finale.

Valore restituito

Questo metodo restituisce il numero di punti dati nella sezione recuperata. Se non sono presenti più sezioni delimitate da marcatori da recuperare, questo metodo restituisce 0.

Commenti

Un percorso include una matrice di punti dati che definiscono le linee e le curve. È possibile chiamare il metodo SetMarker di un percorso per designare determinati punti nella matrice come marcatori. Tali punti marcatori dividono il percorso in sezioni.

La prima volta che si chiama il metodo GraphicsPathIterator::NextMarker di un iteratore, ottiene la prima sezione delimitata dal marcatore del percorso associato dell'iteratore. La seconda volta, ottiene la seconda sezione e così via. Ogni volta che si chiama GraphicsPathIterator::NextSubpath, restituisce il numero di punti dati nella sezione recuperata. Quando non sono presenti sezioni rimanenti, restituisce 0.

Esempio

Nell'esempio seguente viene creato un oggetto GraphicsPath e vengono aggiunte cinque figure al percorso. Le chiamate al metodo SetMarker inserisce due marcatori nel percorso. Il primo marcatore si trova alla fine di una figura e il secondo marcatore si trova al centro di una figura. Il codice passa l'indirizzo dell'oggetto GraphicsPath a un costruttore GraphicsPathIterator per creare un iteratore associato al percorso. Il codice chiama quindi il metodo GraphicsPathIterator::NextMarker due volte per ottenere gli indici iniziali e finali della seconda sezione delimitata dal marcatore del percorso. Infine, il codice disegna i punti dati appartenenti alla seconda sezione delimitata dal marcatore del percorso.

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

Requisiti

Requisito Valore
Intestazione gdipluspath.h

Vedi anche

Costruzione e creazione di percorsi

GraphicsPath

Metodi GraphicsPathIterator::NextMarker

GraphicsPathIterator

GraphicsPathIterator::CopyData

Metodi GraphicsPathIterator::NextMarker

Percorsi