Font::GetHeight (constGraphics*) 方法 (gdiplusheaders.h)
Font::GetHeight 方法获取指定 Graphics 对象的当前单位中此字体的行距。 行距是两个连续文本行的基线之间的垂直距离。 因此,行距包括行之间的空格以及字符本身的高度。
语法
REAL GetHeight(
const Graphics *graphics
);
parameters
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 |