繪製文字 (GDI+)
您可以使用 Graphics 類別的 DrawString 方法,在指定的位置或指定的矩形內繪製文字。
在指定位置繪製文字
若要在指定的位置繪製文字,您需要 Graphics、FontFamily、Font、PointF 和 Brush 物件。
下列範例會在位置繪製字串 「Hello」 (30, 10)。 字型系列是泰晤士新羅馬。 此字型是字型家族的個別成員,是 Times New Roman,大小為 24 像素,一般樣式。 假設圖形是現有的 Graphics 物件。
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);
下圖顯示上述程式代碼的輸出。
在上述範例中,FontFamily 建構函式會收到識別字型系列的字串。 FontFamily 物件的位址會當做第一個自變數傳遞至 Font 建構函式。 傳遞至 Font 建構函式的第二個自變數會指定以第四個自變數所指定單位測量的字型大小。 第三個自變數會指定字型的樣式(一般、粗體、斜體等等)。
DrawString 方法會接收五個自變數。 第一個自變數是要繪製的字串,而第二個自變數是該字串的長度(以字元,而非位元組為單位)。 如果字串以 Null 終止,您可以傳遞 –1 的長度。 第三個自變數是先前建構之 Font 對象的位址。 第四個 自變數是 PointF 物件,其中包含字串左上角的座標。 第五個 自變數是 SolidBrush 物件的地址,用來填滿字串的字元。
在矩形中繪製文字
Graphics 類別的其中一個 DrawString 方法具有 RectF 參數。 藉由呼叫 DrawString 方法,您可以繪製以指定矩形換行的文字。 若要在矩形中繪製文字,您需要 Graphics、FontFamily、Font、RectF 和 Brush 物件。
下列範例會建立左上角 (30, 10)、 寬度 100 和高度 122 的矩形。 然後程序代碼會在該矩形內繪製字串。 字串會限制為矩形,並以不中斷個別字組的方式包裝。
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);
下圖顯示矩形中繪製的文字。
在上述範例中,傳遞至 DrawString 方法的第四個自變數是 RectF 物件,指定文字的周框。 第五個參數的類型為 StringFormat— 自變數為 NULL ,因為不需要特殊字串格式設定。