TEXTMETRICA 结构 (wingdi.h)

TEXTMETRIC 结构包含有关物理字体的基本信息。 所有大小都在逻辑单元中指定;也就是说,它们依赖于显示上下文的当前映射模式。

语法

typedef struct tagTEXTMETRICA {
  LONG tmHeight;
  LONG tmAscent;
  LONG tmDescent;
  LONG tmInternalLeading;
  LONG tmExternalLeading;
  LONG tmAveCharWidth;
  LONG tmMaxCharWidth;
  LONG tmWeight;
  LONG tmOverhang;
  LONG tmDigitizedAspectX;
  LONG tmDigitizedAspectY;
  BYTE tmFirstChar;
  BYTE tmLastChar;
  BYTE tmDefaultChar;
  BYTE tmBreakChar;
  BYTE tmItalic;
  BYTE tmUnderlined;
  BYTE tmStruckOut;
  BYTE tmPitchAndFamily;
  BYTE tmCharSet;
} TEXTMETRICA, *PTEXTMETRICA, *NPTEXTMETRICA, *LPTEXTMETRICA;

成员

tmHeight

字符的高度(上升 + 下降)。

tmAscent

字符的上升(基线上方的单位)。

tmDescent

字符的下行(基线下方的单位)。

tmInternalLeading

tmHeight 成员设置的边界内的前导(空格)量。 重音标记和其他音调字符可能发生在此区域中。 设计器可将此成员设置为零。

tmExternalLeading

应用程序在行之间添加的额外前导(空格)量。 由于此区域不在字体之外,因此它不包含任何标记,并且不会由 OPAQUE 或 TRANSPARENT 模式下的文本输出调用更改。 设计器可将此成员设置为零。

tmAveCharWidth

字体中字符的平均宽度(通常定义为字母 x 的宽度)。 此值不包括粗体或斜体字符所需的悬停。

tmMaxCharWidth

字体中最宽字符的宽度。

tmWeight

字体的粗细。

tmOverhang

可以添加到某些合成字体的每个字符串的额外宽度。 合成某些属性(如粗体或斜体)时,图形设备接口(GDI)或设备可能必须基于每个字符和每字符串向字符串添加宽度。 例如,GDI 通过扩展每个字符的间距和偏移值过度,使字符串加粗;它通过剪切字符串来斜体字体。 在任一情况下,基本字符串都存在悬而未及的情况。 对于粗体字符串,悬置是超值偏移的距离。 对于斜体字符串,悬停是字体顶部在字体底部剪切的量。

tmOverhang 成员使应用程序能够确定由 GetTextExtentPoint32 函数调用对单个字符返回的字符宽度是多少是实际字符宽度以及每字符串的额外宽度。 实际宽度是盘区减去悬停。

tmDigitizedAspectX

为其设计字体的设备的水平方面。

tmDigitizedAspectY

为其设计字体的设备垂直方面。 tmDigitizedAspectXtmDigitizedAspectY 成员的比例是设计字体的设备纵横比。

tmFirstChar

字体中定义的第一个字符的值。

tmLastChar

字体中定义的最后一个字符的值。

tmDefaultChar

要替换为不在字体中的字符的字符的值。

tmBreakChar

将用于定义文本对齐的分词符的字符的值。

tmItalic

指定非零的斜体字体。

tmUnderlined

指定非零的带下划线的字体。

tmStruckOut

非零字号的删除字体。

tmPitchAndFamily

指定有关音调、技术和物理字体系列的信息。

此成员的四个低序位指定有关字体间距和技术的信息。 为每个四位定义一个常量。

不断 意义
TMPF_FIXED_PITCH 如果设置此位,则字体是可变音调字体。 如果此位清楚,字体是固定的间距字体。 请仔细注意,这些含义与常量名称的含义相反。
TMPF_VECTOR 如果设置此位,则字体为矢量字体。
TMPF_TRUETYPE 如果设置此位,则字体为 TrueType 字体。
TMPF_DEVICE 如果设置此位,则字体是设备字体。
 

应用程序应仔细测试以这些低序位编码的质量,不进行任意假设。 例如,除了设置自己的位外,TrueType 和 PostScript 字体还设置TMPF_VECTOR位。 一个单空间位图字体具有所有这些低序位清晰:比例位图字体设置TMPF_FIXED_PITCH位。 Postscript 打印机设备字体设置TMPF_DEVICE、TMPF_VECTOR和TMPF_FIXED_PITCH位。

tmPitchAndFamily 的四个高阶位 指定字体的字体系列。 应用程序可以使用值0xF0和位 AND 运算符来屏蔽 tmPitchAndFamily的四个低序位,从而获得一个值,该值可以直接与字体系列名称进行比较以查找相同的匹配项。 有关字体系列的信息,请参阅 LOGFONT 结构的说明。

tmCharSet

字体的字符集。 字符集可以是以下值之一。

  • ANSI_CHARSET
  • BALTIC_CHARSET
  • CHINESEBIG5_CHARSET
  • DEFAULT_CHARSET
  • EASTEUROPE_CHARSET
  • GB2312_CHARSET
  • GREEK_CHARSET
  • HANGUL_CHARSET
  • MAC_CHARSET
  • OEM_CHARSET
  • RUSSIAN_CHARSET
  • SHIFTJIS_CHARSET
  • SYMBOL_CHARSET
  • TURKISH_CHARSET
  • VIETNAMESE_CHARSET
Windows 的朝鲜语版本:
  • JOHAB_CHARSET
中东语言版本的 Windows:
  • ARABIC_CHARSET
  • HEBREW_CHARSET
windows 泰文语言版本:
  • THAI_CHARSET

言论

注意

wingdi.h 标头将 TEXTMETRIC 定义为一个别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将中性编码别名与不中性编码的代码混合使用可能会导致编译或运行时错误不匹配。 有关详细信息,请参阅函数原型的 约定。

要求

要求 价值
最低支持的客户端 Windows 2000 Professional [仅限桌面应用]
支持的最低服务器 Windows 2000 Server [仅限桌面应用]
标头 wingdi.h (包括 Windows.h)

另请参阅

字体和文本结构

字体和文本概述

GetTextExtentPoint32

GetTextMetrics

LOGFONT