Pinsel und gefüllte Formen
Eine geschlossene Figur wie ein Rechteck oder eine Ellipse besteht aus einer Kontur und einem Inneren. Die Kontur wird mit einem Pen--Objekt gezeichnet, und der Innenbereich wird mit einem Brush-Objekt gefüllt. Windows GDI+ bietet mehrere Pinselklassen zum Ausfüllen der Innenräume geschlossener Figuren: SolidBrush, HatchBrush, TextureBrush, LinearGradientBrushund PathGradientBrush. Alle diese Klassen erben von der Brush Klasse. Die folgende Abbildung zeigt ein Rechteck, das mit einem einfarbigen Pinsel gefüllt ist, und eine mit einem Schlupfpinsel gefüllte Auslassungspunkte.
Einfarbige Pinsel
Zum Ausfüllen einer geschlossenen Form benötigen Sie ein Graphics-Objekt und ein Brush--Objekt. Das Graphics-Objekt stellt Methoden bereit, z. B. FillRectangle- und FillEllipse-, und das Brush--Objekt speichert Attribute der Füllung, z. B. Farbe und Muster. Die Adresse des Brush-Objekts wird als eines der Argumente an die Füllmethode übergeben. Im folgenden Beispiel wird eine Auslassungspunkte mit einer einfarbigen roten Farbe gefüllt.
SolidBrush mySolidBrush(Color(255, 255, 0, 0));
myGraphics.FillEllipse(&mySolidBrush, 0, 0, 60, 40);
Beachten Sie, dass der Pinsel im vorherigen Beispiel vom Typ SolidBrushist, der von Brusherbt.
Schlupfbürsten
Wenn Sie eine Form mit einem Schlupfpinsel füllen, geben Sie eine Vordergrundfarbe, eine Hintergrundfarbe und eine Schlupfart an. Die Vordergrundfarbe ist die Farbe des Schlupfens.
HatchBrush myHatchBrush(
HatchStyleVertical,
Color(255, 0, 0, 255),
Color(255, 0, 255, 0));
GDI+ bietet mehr als 50 Schlupfarten, die in HatchStyle-angegeben sind. Die in der folgenden Abbildung gezeigten drei Formatvorlagen sind "Horizontal", "ForwardDiagonal" und "Cross".
Texturpinsel
Mit einem Texturpinsel können Sie eine Form mit einem Muster füllen, das in einer Bitmap gespeichert ist. Angenommen, die folgende Grafik wird in einer Datenträgerdatei mit dem Namen MyTexture.bmpgespeichert.
Im folgenden Beispiel wird eine Auslassungspunkte gefüllt, indem das in MyTexture.bmpgespeicherte Bild wiederholt wird.
Image myImage(L"MyTexture.bmp");
TextureBrush myTextureBrush(&myImage);
myGraphics.FillEllipse(&myTextureBrush, 0, 0, 100, 50);
Die folgende Abbildung zeigt die gefüllte Auslassungspunkte.
Farbverlaufpinsel
Sie können einen Farbverlaufpinsel verwenden, um eine Form mit einer Farbe zu füllen, die sich schrittweise von einem Teil der Form in einen anderen ändert. Ein horizontaler Farbverlaufpinsel ändert z. B. die Farbe, wenn Sie von der linken Seite einer Abbildung zur rechten Seite wechseln. Im folgenden Beispiel wird eine Ellipse mit einem horizontalen Farbverlaufpinsel gefüllt, der sich von Blau zu Grün ändert, während Sie von der linken Seite der Auslassungspunkte zur rechten Seite wechseln.
LinearGradientBrush myLinearGradientBrush(
myRect,
Color(255, 0, 0, 255),
Color(255, 0, 255, 0),
LinearGradientModeHorizontal);
myGraphics.FillEllipse(&myLinearGradientBrush, myRect);
Die folgende Abbildung zeigt die gefüllte Auslassungspunkte.
Ein Pfadfarbverlaufpinsel kann so konfiguriert werden, dass die Farbe geändert wird, während Sie von der Mitte einer Figur zur Grenze wechseln.
Pfadverlaufpinsel sind ziemlich flexibel. Der Farbverlaufpinsel, der zum Ausfüllen des Dreiecks in der folgenden Abbildung verwendet wird, ändert sich allmählich von Rot in der Mitte zu jeder von drei verschiedenen Farben an den Scheitelpunkten.