TEXTMETRIC结构提供了关于当前设备描述表中选用的字体的丰富信息。但是,字体的纵向大小只由5个值确定,其中4个值如下图所示。
其中最重要的值是tmHeight,它是tmAscent和tmDescent的和。这两个值表示了基线上下字符的最大纵向高度。术语”间距(leading)“指打印机在两行文本间插入的空间。在TEXTMETRIC结构中,内部的间距包括在tmAscent中(因此也在tmHeight中),并且它经常是重音符号出现的地方。tmInternalLeading字段能够被置为0,在这种情况下,加重音的字母会稍稍缩短,以便容纳重音符号。
TEXTMETRIC结构还包括一个不包含在tmHeight值中的字段tmExternalLeading。它是字体设计者建议加在横向字符之间是空间大小。在安排文本行之间的空隙时,您可以接受设计者建议的值,也可以拒绝它。在系统字体中tmExtrenalLeading可以为0,因此没有在下图中显示它(下图是Windows在640*480的显示分辨率中使用的精确的系统字体)
TEXTMETRIC结构包含有描述字符宽度的两个字段,即tmAveCharWidth(小写字母加权平均宽度)和tmMaxCharWidth(字体中最宽字符的宽度)。对于等宽字体,这两个值是相等的。(上图中这些值分别为7和14)
还有另一种字符宽度,即大写字母的平均宽度,这可以用tmAveCharWidth乘以150%大致计算出来。
注:必须认识到,系统字体的大小取决于Windows所运行的视频显示器的分辨率,在某些情况下,取决于用户选取的系统字体的大小。Windows提供了一个与设备无关的图形界面,但程序员并不是无所事事。不要想当然地猜测字符大小来编写Windows程序,也不要把值定死,可以使用GetTextMetrics函数获取这一信息。