Share via


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

Weitere Informationen

Pinsel und gefüllte Formen

Füllen einer Form mit einem Farbverlauf

Graphicspath

Pathgradientbrush

PathGradientBrush::SetFocusScales