TEXTMETRIC结构包含有关物理字体的基本信息。所有尺寸均以逻辑单位给出;也就是说,它们取决于显示上下文的当前映射模式。
typedef struct tagTEXTMETRIC { // tm
LONG tmHeight;
LONG tmAscent;
LONG tmDescent;
LONG tmInternalLeading;
LONG tmExternalLeading;
LONG tmAveCharWidth;
LONG tmMaxCharWidth;
LONG tmWeight;
LONG tmOverhang;
LONG tmDigitizedAspectX;
LONG tmDigitizedAspectY;
BCHAR tmFirstChar;
BCHAR tmLastChar;
BCHAR tmDefaultChar;
BCHAR tmBreakChar;
BYTE tmItalic;
BYTE tmUnderlined;
BYTE tmStruckOut;
BYTE tmPitchAndFamily;
BYTE tmCharSet;
} TEXTMETRIC;
会员
tmHeight中
指定字符的高度(上升+下降)。
tmAscentca
指定字符的上升(基线以上的单位)。
tmDescent
指定字符的下降(基线以下的单位)。
tmInternalLeading
指定由tmHeight中成员设置的边界内的前导(空格)的数量。这个区域可能会出现重音和其他变音符号。设计人员可以将此成员设置为零。
tmExternalLeading
指定应用程序在行之间添加的额外引导(空格)的数量。由于该区域不在字体之外,它不包含任何标记,并且在OPAQUE或TRANSPARENT模式下的文本输出调用不会更改。设计人员可以将此成员设置为零。
tmAveCharWidth
指定字体中字符的平均宽度(通常定义为字母【x】的宽度)。此值不包括粗体或斜体字符所需的突出显示。
tmMaxCharWidth
指定字体中最宽字符的宽度。
tmWeight
指定字体的重量。
tmOverhang
指定可能添加到某些合成字体的每个字符串的额外宽度。当合成一些属性(例如粗体或斜体)时,图形设备接口(GDI)或设备可能必须在每个字符和每个字符串的基础上为字符串添加宽度。例如,GDI通过扩展每个字符的间距并通过一个偏移值来突出显示字符串粗体;它通过剪切字符串来斜体字体。无论哪种情况,基本字符串都有一个突出端。对于粗体字符串,突出部分是偏移距离。对于斜体字符串,悬垂是通过字体底部剪切字体顶部的量。
tmOverhang成员使应用程序能够确定单个字符上的GetTextExtentPoint32函数调用返回的字符宽度是实际字符宽度,每字符串额外宽度多少。实际宽度是减去突出端的程度。
tmDigitizedAspectX
指定设计字体的设备的水平方面。
tmDigitizedAspectY
指定设计字体的设备的垂直方面。tmDigitizedAspectX和tmDigitizedAspectY成员的比例是设计字体的设备的宽高比。
tmFirstChar
指定字体中定义的第一个字符的值。
tmLastChar
指定字体中定义的最后一个字符的值。
tmDefaultChar
指定要替换为不在字体中的字符的字符的值。
tmBreakChar
指定用于定义文本对齐的单词的字符的值。
tmItalicel-Latn
指定一个斜体字体,如果它是非零。
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
指定字体的字符集。
也可以看看