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
Füllen einer Form mit einem Farbverlauf
PathGradientBrush::GetTransform
PathGradientBrush::MultiplyTransform
PathGradientBrush::ResetTransform
PathGradientBrush::RotateTransform