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
Metodi GraphicsPathIterator::NextMarker
GraphicsPathIterator::CopyData