Freigeben über


PathGradientBrush::SetTransform-Methode (gdipluspath.h)

Die PathGradientBrush::SetTransform-Methode legt die Transformationsmatrix dieses Pfadverlaufspinsels fest.

Syntax

Status SetTransform(
  [in] const Matrix *matrix
);

Parameter

[in] matrix

Typ: const Matrix*

Zeiger auf ein Matrix-Objekt , das die Transformationsmatrix angibt.

Rückgabewert

Typ: Status

Wenn die Methode erfolgreich ist, gibt sie OK zurück, ein Element der Status-Enumeration .

Wenn die Methode fehlschlägt, gibt sie eines der anderen Elemente der Status-Enumeration zurück.

Hinweise

Ein PathGradientBrush-Objekt verfügt über ein GraphicsPath-Objekt , das als Begrenzungspfad für den Pinsel dient. Wenn Sie mit einem Pfadverlaufspinsel zeichnen, wird nur der Bereich innerhalb des Begrenzungspfads gefüllt. Wenn die Transformationsmatrix des Pinsels so festgelegt ist, dass sie eine andere Transformation als die Identität darstellt, wird der Begrenzungspfad gemäß dieser Matrix während des Renderings transformiert, und nur der Bereich innerhalb des transformierten Pfads wird gefüllt.

Die Transformation gilt nur während des Renderns. Der vom PathGradientBrush-Objekt gespeicherte Begrenzungspfad wird von der PathGradientBrush::SetTransform-Methode nicht geändert.

Beispiele

Im folgenden Beispiel wird ein PathGradientBrush-Objekt basierend auf einem dreieckigen Pfad erstellt. Die Graphics::FillRectangle-Methode verwendet den Pfadverlaufspinsel, um ein Rechteck zu zeichnen, das den dreieckigen Pfad enthält. Als Nächstes erstellt der Code ein Matrix-Objekt , das eine zusammengesetzte Transformation darstellt (rotieren, dann übersetzen) und übergibt die Adresse dieses Matrix-Objekts an die PathGradientBrush::SetTransform-Methode des PathGradientBrush-Objekts . Der Code ruft FillRectangle ein zweites Mal auf, um das gleiche Rechteck mit dem transformierten Pfadverlaufspinsel zu malen.

VOID Example_SetTransform(HDC hdc)
{
   Graphics graphics(hdc);

   Point pts[] = {
      Point(0, 0), 
      Point(100, 0), 
      Point(100, 100)};

   Color cols[] = {
      Color(255, 255, 0, 0),  // red
      Color(255, 0, 255, 0),  // green
      Color(255, 0, 0, 0)};   // black

   INT count = 3;
   PathGradientBrush pthGrBrush(pts, 3);
   pthGrBrush.SetSurroundColors(cols, &count);

   // Fill an area with the path gradient brush (no transformation).
   graphics.FillRectangle(&pthGrBrush, 0, 0, 200, 200);

   // Set the transformation for the brush (rotate, then translate).
   Matrix matrix(0.0f, 1.0f, -1.0f, 0.0f, 150.0f, 60.0f);
   pthGrBrush.SetTransform(&matrix);
   
   // Fill the same area with the transformed path gradient brush.
   graphics.FillRectangle(&pthGrBrush, 0, 0, 200, 200);  
}

Anforderungen

Anforderung Wert
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

Erstellen eines Pfadverlaufs

Füllen einer Form mit einem Farbverlauf

Graphicspath

Pathgradientbrush

PathGradientBrush::GetTransform

PathGradientBrush::MultiplyTransform

PathGradientBrush::ResetTransform

PathGradientBrush::RotateTransform

PathGradientBrush::ScaleTransform

PathGradientBrush::TranslateTransform