Zeichnen von Text (GDI+)
Sie können die DrawString-Methode der Graphics-Klasse verwenden, um Text an einer angegebenen Position oder innerhalb eines angegebenen Rechtecks zu zeichnen.
Zeichnen von Text an einer angegebenen Position
Zum Zeichnen von Text an einer angegebenen Position benötigen Sie Die Objekte Graphics, FontFamily, Font, PointF und Brush .
Das folgende Beispiel zeichnet die Zeichenfolge "Hello" an der Position (30, 10). Die Schriftfamilie ist Times New Roman. Die Schriftart, die ein einzelnes Mitglied der Schriftfamilie ist, ist Times New Roman, Größe 24 Pixel, regulärer Stil. Angenommen, Grafiken sind ein vorhandenes Graphics-Objekt .
FontFamily fontFamily(L"Times New Roman");
Font font(&fontFamily, 24, FontStyleRegular, UnitPixel);
PointF pointF(30.0f, 10.0f);
SolidBrush solidBrush(Color(255, 0, 0, 255));
graphics.DrawString(L"Hello", -1, &font, pointF, &solidBrush);
Die folgende Abbildung zeigt die Ausgabe des vorangehenden Codes.
Im vorherigen Beispiel empfängt der FontFamily-Konstruktor eine Zeichenfolge, die die Schriftfamilie identifiziert. Die Adresse des FontFamily-Objekts wird als erstes Argument an den Font-Konstruktor übergeben. Das zweite Argument, das an den Font-Konstruktor übergeben wird, gibt die Größe der Schriftart an, die in Einheiten gemessen wird, die vom vierten Argument angegeben werden. Das dritte Argument gibt die Formatvorlage (normal, fett, kursiv usw.) der Schriftart an.
Die DrawString-Methode empfängt fünf Argumente. Das erste Argument ist die zu zeichnende Zeichenfolge, und das zweite Argument ist die Länge (in Zeichen, nicht Bytes) dieser Zeichenfolge. Wenn die Zeichenfolge NULL-endend ist, können Sie –1 für die Länge übergeben. Das dritte Argument ist die Adresse des Font-Objekts , das zuvor erstellt wurde. Das vierte Argument ist ein PointF-Objekt , das die Koordinaten der oberen linken Ecke der Zeichenfolge enthält. Das fünfte Argument ist die Adresse eines SolidBrush-Objekts , das zum Füllen der Zeichen der Zeichenfolge verwendet wird.
Zeichnen von Text in einem Rechteck
Eine der DrawString-Methoden der Graphics-Klasse verfügt über einen RectF-Parameter . Durch Aufrufen dieser DrawString-Methode können Sie Text zeichnen, der in ein angegebenes Rechteck umgebrochen wird. Zum Zeichnen von Text in einem Rechteck benötigen Sie Die Objekte Graphics, FontFamily, Font, RectF und Brush .
Im folgenden Beispiel wird ein Rechteck mit der oberen linken Ecke (30, 10), der Breite 100 und der Höhe 122 erstellt. Anschließend zeichnet der Code eine Zeichenfolge innerhalb dieses Rechtecks. Die Zeichenfolge ist auf das Rechteck beschränkt und wird so umbrochen, dass einzelne Wörter nicht unterbrochen werden.
WCHAR string[] =
L"Draw text in a rectangle by passing a RectF to the DrawString method.";
FontFamily fontFamily(L"Arial");
Font font(&fontFamily, 12, FontStyleBold, UnitPoint);
RectF rectF(30.0f, 10.0f, 100.0f, 122.0f);
SolidBrush solidBrush(Color(255, 0, 0, 255));
graphics.DrawString(string, -1, &font, rectF, NULL, &solidBrush);
Pen pen(Color(255, 0, 0, 0));
graphics.DrawRectangle(&pen, rectF);
Die folgende Abbildung zeigt den im Rechteck gezeichneten Text.
Im vorherigen Beispiel ist das vierte Argument, das an die DrawString-Methode übergeben wird, ein RectF-Objekt , das das umgebende Rechteck für den Text angibt. Der fünfte Parameter ist vom Typ StringFormat. Das Argument ist NULL , da keine spezielle Zeichenfolgenformatierung erforderlich ist.