GraphicsPathIterator::NextSubpath(INT*,INT*,BOOL*)-Methode (gdipluspath.h)
Die GraphicsPathIterator::NextSubpath-Methode ruft den Startindex und den Endindex des nächsten Unterpfads (Abbildung) im zugeordneten Pfad dieses Iterators ab.
Syntax
INT NextSubpath(
INT *startIndex,
INT *endIndex,
BOOL *isClosed
);
Parameter
startIndex
Zeiger auf einen INT , der den Startindex empfängt.
endIndex
Zeiger auf einen INT , der den Endindex empfängt.
isClosed
Zeiger auf eine BOOL , die einen Wert empfängt, der angibt, ob die abgerufene Abbildung geschlossen ist. Wenn die Abbildung geschlossen ist, ist der empfangene Wert TRUE. andernfalls ist der empfangene Wert FALSE.
Rückgabewert
Diese Methode gibt die Anzahl der Datenpunkte in der nächsten Abbildung zurück. Wenn im Pfad keine weiteren Abbildungen vorhanden sind, gibt diese Methode 0 zurück.
Hinweise
Wenn Sie die GraphicsPathIterator::NextSubpath-Methode eines Iterators zum ersten Mal aufrufen, werden die Indizes für die erste Abbildung (Unterpfad) des zugeordneten Pfads dieses Iterators abgerufen. Beim zweiten Mal werden die Indizes für die zweite Abbildung usw. abgerufen. Jedes Mal, wenn Sie GraphicsPathIterator::NextSubpath aufrufen, gibt er die Anzahl der Datenpunkte in der Abbildung zurück, deren Indizes abgerufen wurden. Wenn keine Zahlen mehr vorhanden sind, wird 0 zurückgegeben.
Beispiele
Im folgenden Beispiel wird ein GraphicsPath-Objekt erstellt und dem Pfad fünf Abbildungen hinzugefügt. Der Code übergibt die Adresse dieses GraphicsPath-Objekts an einen GraphicsPathIterator-Konstruktor , um einen Iterator zu erstellen, der dem Pfad zugeordnet ist. Der Code ruft die GraphicsPathIterator::NextSubpath-Methode des Iterators dreimal auf, um den Startindex und den Endindex der dritten Abbildung des Pfads abzurufen. Anschließend ruft der Code die GraphicsPathIterator::CopyData-Methode des Iterators auf, um die Datenpunkte der dritten Abbildung abzurufen.
VOID NextSubpathExample2(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);
// Call NextSubpath three times to get the starting and ending
// indices for the third figure.
INT start;
INT end;
BOOL isClosed;
INT count;
count = iterator.NextSubpath(&start, &end, &isClosed);
count = iterator.NextSubpath(&start, &end, &isClosed);
count = iterator.NextSubpath(&start, &end, &isClosed);
// Get the third figure's data points.
PointF* points = new PointF[count];
BYTE* types = new BYTE[count];
iterator.CopyData(points, types, start, end);
// Draw the third figure's data points.
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;
}
Requirements (Anforderungen)
Kopfzeile | gdipluspath.h |
Weitere Informationen
Erstellen und Zeichnen von Pfaden
GraphicsPathIterator::CopyData
GraphicsPathIterator::GetSubpathCount
GraphicsPathIterator::NextMarker-Methoden