winddi.h) (FD_DEVICEMETRICS 结构

如果驱动程序提供的 DrvQueryFontData 函数的 iMode 参数QFD_MAXEXTENTS,则FD_DEVICEMETRICS结构用于向 GDI 提供特定于设备的字体信息。

语法

typedef struct _FD_DEVICEMETRICS {
  FLONG    flRealizedType;
  POINTE   pteBase;
  POINTE   pteSide;
  LONG     lD;
  FIX      fxMaxAscender;
  FIX      fxMaxDescender;
  POINTL   ptlUnderline1;
  POINTL   ptlStrikeOut;
  POINTL   ptlULThickness;
  POINTL   ptlSOThickness;
  ULONG    cxMax;
  ULONG    cyMax;
  ULONG    cjGlyphMax;
  FD_XFORM fdxQuantized;
  LONG     lNonLinearExtLeading;
  LONG     lNonLinearIntLeading;
  LONG     lNonLinearMaxCharWidth;
  LONG     lNonLinearAvgCharWidth;
  LONG     lMinA;
  LONG     lMinC;
  LONG     lMinD;
  LONG     alReserved[1];
} FD_DEVICEMETRICS, *PFD_DEVICEMETRICS;

成员

flRealizedType

是一组快捷键标志。 此值可以是以下值的组合:

FDM_TYPE_BM_SIDE_CONST

用于水平和垂直书写的加速键。 如果设置了此标志,则字体具有所有位图的常量高度。 在水平情况下,这意味着 cy 维度是常量;在垂直情况下,这意味着 cx 维度是常量。 此加速器不用于轮廓。

FDM_TYPE_CHAR_INC_EQUAL_BM_BASE

用于水平和垂直书写的加速键。 在水平情况下,如果设置了此标志,则每个字形的前进宽度等于字形位图的 cx 维度;在垂直情况下,如果设置了此标志,则每个字形的前进宽度等于字形位图的 cy 尺寸。 此加速器不用于轮廓。

FDM_TYPE_CONST_BEARINGS

如果已设置,则所有字形的 a 和 c 间距都是常量。

FDM_TYPE_MAXEXT_EQUAL_BM_SIDE

仅当同时设置了FDM_TYPE_BM_SIDE_CONST时,才能设置此标志。 如果设置,则上面为水平和垂直书写) 定义的字体高度 (等于最大升序和最大降序之和。 此加速器不用于轮廓。

FDM_TYPE_ZERO_BEARINGS

如果设置,则所有字形的 a 和 c 间距为零。

pteBase

指定一个 POINTE 结构,该结构包含沿字体基线的名义空间单位矢量,转换为设备空间,然后规范化。 有关详细信息,请参阅 GDI 数据类型中的 POINTE。

pteSide

指定 POINTE 结构,该结构包含一个在升序方向垂直于字体基线的名义空间单位矢量,转换为设备空间,然后规范化。 在名义空间中,基线方向和升序方向必须是正交的,但在设备空间中, pteBasepteSide 不必是正交的,具体取决于从 Notional 到 Device 空间的转换。

lD

如果字体是固定间距 (宽) 字体,则指定前进宽度。 如果字体是可变间距字体,则此成员应设置为零。

fxMaxAscender

指定此字体实例的提示最大升序高度,沿 pteSide 测量。 请参阅 GDI 数据类型中的 FIX 数据类型。

fxMaxDescender

指定此字体实例的提示最大降序高度,沿 pteSide 测量。 请参阅 GDI 数据类型中的 FIX 数据类型。

ptlUnderline1

指定一个 POINTL 结构,该结构包含此字体实例相对于字形字符原点的提示下划线位置。

ptlStrikeOut

指定一个 POINTL 结构,该结构包含此字体实例相对于字形字符原点的提示删除线位置。

ptlULThickness

指定包含此字体实例的提示下划线粗细的 POINTL 结构。 此向量定义用于绘制下划线的矩形的边。 基数由基线隐式定义。

ptlSOThickness

指定包含此字体实例的提示删除线粗细的 POINTL 结构。 此向量定义用于绘制删除线的矩形的边。 基数由基线隐式定义。

cxMax

指定此字体实例的提示最大字形位图宽度(以像素为单位)。 不用于大纲。

cyMax

指定此字体实例的提示最大字形位图高度(以像素为单位)。 不用于大纲。

cjGlyphMax

指定此字体实例的标志符号的提示最大大小(以字节为单位)。 此值是存储任何字体字形所需的 GLYPHBITS 结构的最大大小。

fdxQuantized

指定 FD_XFORM 结构。 字体驱动程序填充在实现字体时实际使用的字体转换。 这可能不同于 FONTOBJ_pxoGetXform定义的 GDI 请求的转换。

lNonLinearExtLeading

28.4 设备单位中的非线性外部前导。

lNonLinearIntLeading

28.4 设备单位中的非线性内部前导。

lNonLinearMaxCharWidth

以 28.4 个设备单位为单位的非线性最大字符增量。

lNonLinearAvgCharWidth

以 28.4 设备单位表示的非线性平均字符宽度。

lMinA

此字体实现的最大负 A 空格,指定为绝对值。

lMinC

此字体实现的最大负 C 空间,指定为绝对值。

lMinD

此字体实现的最小非零字符宽度。

alReserved[1]

保留,字体提供程序应忽略。

要求

   
标头 winddi.h (包括 Winddi.h)

另请参阅

DrvQueryFontData

FD_XFORM

FONTOBJ_pxoGetXform

GLYPHBITS