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
Um Text an einer angegebenen Position zu zeichnen, benötigen Sie Grafik-, FontFamily-, Font-, PointF-und Brush-Objekte.
Im folgenden Beispiel wird die Zeichenfolge "Hello" am Speicherort (30, 10) zeichnet. Die Schriftfamilie ist Times New Roman. Die Schriftart, die ein einzelnes Element der Schriftfamilie ist, ist Times New Roman, Größe 24 Pixel, regulärer Stil. Angenommen, Grafik ist 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 den Stil (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 in Bytes) dieser Zeichenfolge. Wenn die Zeichenfolge NULL-terminiert 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 einem angegebenen Rechteck umbrochen wird. Um Text in einem Rechteck zu zeichnen, benötigen Sie Graphics-, FontFamily-, Font-, RectF-und Brush-Objekte.
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 umschließt so, 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.