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

该字体的目标设备的垂直比例。 tmDigitizedAspectXtmDigitizedAspectY 成员的比率是为其设计字体的设备纵横比。

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)

另请参阅

EnumFontFamilies

字体和文本结构

字体和文本概述

GetTextExtentPoint32

GetTextMetrics

LOGFONT