文本尺寸:细节

本文介绍了TEXTMETRIC结构,该结构提供了丰富的字体信息,包括字符的纵向尺寸、间距及宽度等关键属性。通过理解这些参数,开发者能更好地控制文本布局与显示效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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函数获取这一信息。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值