Font::GetHeight (constGraphics*) 方法 (gdiplusheaders.h)
Font::GetHeight方法會取得指定Graphics物件目前單位中這個字型的行距。 行距是兩連續文字行基準線間的垂直距離。 因此,行距包含行之間的空格,以及字元本身的高度。
語法
REAL GetHeight(
const Graphics *graphics
);
參數
graphics
圖形物件的指標,其單位和垂直解析度用於高度計算中。
傳回值
類型: 狀態
如果方法成功,它會傳回 Ok,這是 Status 列舉的元素。
如果方法失敗,它會傳回 Status 列舉的其中一個其他元素。
備註
如果字型單位設定為 UnitPixel以外的任何專案,則會使用指定 Graphics 物件的垂直解析度來計算高度, 以圖元為單位。 例如,假設字型單位為英吋,且字型大小為 0.3。 此外,假設針對對應的字型系列,em 高度為 2048,而行距為 2355。 如果 Graphics 物件的單位是 UnitPixel , 而 Graphics 物件的垂直解析度是每英吋 96 點,則高度的計算方式如下:
2355*(0.3/2048)*96 = 33.1171875
繼續相同的範例,假設 Graphics 物件的單位不是 UnitPixel,例如 UnitMillimeter。 然後使用 1 英吋 = 25.4 公釐) 高度,以公釐為單位計算 (如下所示:
2355*(0.3/2048)25.4 = 8.762256
範例
下列範例會建立 Font 物件、擷取 Font 物件的高度,並使用高度來放置兩行文字,第二行緊接在第一行下方。
VOID Example_GetHeight(HDC hdc)
{
Graphics graphics(hdc);
// Create a Font object.
Font myFont(L"Arial", 16);
// Draw text with myFont.
SolidBrush solidbrush_1(Color(255, 0, 0, 0));
WCHAR string[] = L"The first line of text";
graphics.DrawString(string, 22, &myFont, PointF(0, 0), &solidbrush_1);
// Get the height of myFont.
REAL height = myFont.GetHeight(&graphics);
// Draw text immediately below the first line of text.
SolidBrush solidbrush_2(Color(255, 255, 0, 0));
WCHAR string[] = L"The second line of text";
graphics.DrawString(string2, 23, &myFont, PointF(0, height),
&solidbrush_2);
}
需求
標頭 | gdiplusheaders.h |