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 对象的单位为 UnitPixelGraphics 对象的垂直分辨率为每英寸 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

另请参阅

字体

显卡

使用文本和字体