PathGradientBrush::GetFocusScales-Methode (gdipluspath.h)
Die PathGradientBrush::GetFocusScales-Methode ruft die Fokusskalen dieses Pfadverlaufspinsels ab.
Syntax
Status GetFocusScales(
[out] REAL *xScale,
[out] REAL *yScale
);
Parameter
[out] xScale
Typ: REAL*
Zeiger auf einen REAL-Wert , der den x-Fokusskalierungswert empfängt.
[out] yScale
Typ: REAL*
Zeiger auf einen REAL-Wert , der den y-Fokusskalierungswert empfängt.
Rückgabewert
Typ: Status
Wenn die Methode erfolgreich ist, gibt sie OK zurück, ein Element der Status-Enumeration .
Wenn die Methode fehlschlägt, wird eines der anderen Elemente der Status-Enumeration zurückgegeben.
Hinweise
Standardmäßig befindet sich die Mittlere Farbe eines Pfadfarbverlaufs am Mittelpunkt. Durch Aufrufen von PathGradientBrush::SetFocusScales können Sie angeben, dass die mittlere Farbe entlang eines Pfads angezeigt werden soll, der den Mittelpunkt umgibt. Angenommen, der Begrenzungspfad ist ein Dreieck, und der Mittelpunkt befindet sich am Mittelpunkt dieses Dreiecks. Nehmen Sie außerdem an, dass die Begrenzungsfarbe rot und die Mittlere Farbe blau ist. Wenn Sie die Fokusskalierung auf (0,2, 0,2) festlegen, ist die Farbe entlang der Grenze eines kleinen Dreiecks, das den Mittelpunkt umgibt, blau. Dieses kleine Dreieck ist der Standard Begrenzungspfad, der um den Faktor 0,2 in x-Richtung und 0,2 in y-Richtung skaliert wird. Wenn Sie mit dem Pfadfarbverlaufpinsel malen, ändert sich die Farbe allmählich von Rot zu Blau, wenn Sie von der Grenze des großen Dreiecks zur Grenze des kleinen Dreiecks wechseln. Der Bereich innerhalb des kleinen Dreiecks wird mit Blau gefüllt.
Beispiele
Im folgenden Beispiel wird ein PathGradientBrush-Objekt basierend auf einem dreieckigen Pfad erstellt. Der Code legt die Fokusskalen des Pfadverlaufspinsels auf (0,2, 0,2) fest und verwendet dann den Pfadfarbverlaufpinsel, um einen Bereich zu füllen, der den dreieckigen Pfad enthält. Schließlich ruft der Code die PathGradientBrush::GetFocusScales-Methode des PathGradientBrush-Objekts auf, um die Werte der x-Fokusskalierung und der y-Fokusskalierung abzurufen.
VOID Example_GetFocusScales(HDC hdc)
{
Graphics graphics(hdc);
Point points[] = {Point(100, 0), Point(200, 200), Point(0, 200)};
// No GraphicsPath object is created. The PathGradientBrush
// object is constructed directly from the array of points.
PathGradientBrush pthGrBrush(points, 3);
Color colors[] = {
Color(255, 255, 0, 0), // red
Color(255, 0, 0, 255)}; // blue
REAL relativePositions[] = {
0.0f, // red at the boundary of the outer triangle
1.0f}; // blue at the boundary of the inner triangle
pthGrBrush.SetInterpolationColors(colors, relativePositions, 2);
// The inner triangle is formed by scaling the outer triangle
// about its centroid. The scaling factor is 0.2 in both
// the x and y directions.
pthGrBrush.SetFocusScales(0.2f, 0.2f);
// Fill a rectangle that is larger than the triangle
// specified in the Point array. The portion of the
// rectangle outside the triangle will not be painted.
graphics.FillRectangle(&pthGrBrush, 0, 0, 200, 200);
// Obtain information about the path gradient brush.
REAL xScale = 0.0f;
REAL yScale = 0.0f;
pthGrBrush.GetFocusScales(&xScale, &yScale);
// The value of xScale is now 0.2.
// The value of yScale is now 0.2.
}
Anforderungen
Unterstützte Mindestversion (Client) | Windows XP, Windows 2000 Professional [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows 2000 Server [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | gdipluspath.h (include Gdiplus.h) |
Bibliothek | Gdiplus.lib |
DLL | Gdiplus.dll |