NEWTEXTMETRICA 结构 (wingdi.h)
NEWTEXTMETRIC 结构包含描述物理字体的数据。
语法
typedef struct tagNEWTEXTMETRICA {
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;
DWORD ntmFlags;
UINT ntmSizeEM;
UINT ntmCellHeight;
UINT ntmAvgWidth;
} NEWTEXTMETRICA, *PNEWTEXTMETRICA, *NPNEWTEXTMETRICA, *LPNEWTEXTMETRICA;
成员
tmHeight
字符的高度 (上升 + 下降) 。
tmAscent
升 (基线上方的单位) 字符。
tmDescent
字符) 基线以下的下降 (单位。
tmInternalLeading
tmHeight 成员设置的边界内) 前导 (空间量。 此区域中可能会出现重音符号和其他音调符号。 设计器可将此成员设置为零。
tmExternalLeading
应用程序在行之间添加的额外前导 (空间量) 。 由于此区域在字体外部,因此它不包含任何标记,并且不会在 OPAQUE 或 TRANSPARENT 模式下被文本输出调用更改。 设计器可将此成员设置为零。
tmAveCharWidth
字体中字符的平均宽度 (通常定义为字母 x) 的宽度。 此值不包括粗体或斜体字符所需的悬垂。
tmMaxCharWidth
该字体中最宽字符的宽度。
tmWeight
该字体的粗细。
tmOverhang
可能添加到一些合成字体中的每个字符串的附加宽度。 合成某些属性(如粗体或斜体)时,图形设备接口 (GDI) 或设备可能需要同时按字符和按字符串添加宽度。 例如,GDI 通过展开每个字符的间距并用偏移值进行过度调整,使字符串加粗;它通过剪切字符串来斜体字体。 在任一情况下,基本字符串都存在悬垂。 对于粗体字符串,悬空是过度打击偏移的距离。 对于斜体字符串,悬垂是字体顶部从字体底部剪切的量。
tmOverhang 成员使应用程序能够确定 GetTextExtentPoint32 函数调用对单个字符返回的字符宽度是多少是实际字符宽度,以及每字符串多余宽度多少。 实际宽度是范围减去悬垂。
tmDigitizedAspectX
该字体的目标设备的水平比例。
tmDigitizedAspectY
该字体的目标设备的垂直比例。 tmDigitizedAspectX 和 tmDigitizedAspectY 成员的比率是为其设计字体的设备纵横比。
tmFirstChar
字体中定义的第一个字符的值。
tmLastChar
字体中定义的最后一个字符的值。
tmDefaultChar
要替换不在字体中的字符的字符的值。
tmBreakChar
用于定义文本对齐的分词符的字符的值。
tmItalic
如果为非零,则为斜体字体。
tmUnderlined
带下划线的字体(如果为非零)。
tmStruckOut
如果为非零,则为删除线字体。
tmPitchAndFamily
所选字体的间距和系列。 低位 (位 0) 指定字体的间距。 如果为 1,则字体为可变间距 (或成比例) 。 如果为 0,则字体为固定间距 (或单空格) 。 位 1 和 2 指定字体类型。 如果两位均为 0,则字体为光栅字体;如果位 1 为 1,位 2 为 0,则字体为向量字体;如果位 1 为 0 且设置位 2,或者如果两位均为 1,则字体为其他类型。 如果字体是设备字体,则位 3 为 1;否则为 0。
四个高序位指定字体系列。 可以使用按位 AND 运算符将 tmPitchAndFamily 成员与十六进制值0xF0组合,然后可以与字体系列名称进行比较,以获取相同的匹配项。 有关字体系列的详细信息,请参阅 LOGFONT。
tmCharSet
字体的字符集。
ntmFlags
指定字体是否为斜体、下划线、轮廓、加粗等。 可以是以下值的任意合理组合。
bit | 名称 | 含义 |
---|---|---|
0 | NTM_ITALIC | 斜体 |
5 | NTM_BOLD | 粗体 |
8 | NTM_REGULAR | 普通 |
16 | NTM_NONNEGATIVE_AC | 任何字形中任何大小的字体都没有负 A 或 C 空间。 |
17 | NTM_PS_OPENTYPE | PostScript OpenType 字体 |
18 | NTM_TT_OPENTYPE | TrueType OpenType 字体 |
19 | NTM_MULTIPLEMASTER | 多母版字体 |
20 | NTM_TYPE1 | 键入 1 字体 |
21 | NTM_DSIG | 具有数字签名的字体。 这允许可追溯性,并确保字体已经过测试且未损坏 |
ntmSizeEM
字体的 em 正方形的大小。 此值以名义单位表示, (即字体设计) 单位。
ntmCellHeight
字体的高度(以名义单位表示)。 此值应与 ntmSizeEM 成员的值进行比较。
ntmAvgWidth
字体中字符的平均宽度(以名义单位表示)。 此值应与 ntmSizeEM 成员的值进行比较。
备注
NEWTEXTMETRIC 结构的最后四个成员不包括在 TEXTMETRIC 结构中;在所有其他方面,结构都是相同的。
NEWTEXTMETRIC 结构中的大小通常以逻辑单元指定;也就是说,它们依赖于显示上下文的当前映射模式。
注意
wingdi.h 标头将 NEWTEXTMETRIC 定义为别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将非特定编码别名与非非特定编码的代码混合使用可能会导致不匹配,从而导致编译或运行时错误。 有关详细信息,请参阅 函数原型的约定。
要求
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
标头 | wingdi.h (包括 Windows.h) |