小甲鱼 发表于 2016-7-28 23:23:51

EnumFontFamProc

注:本文档由 CET-6-WPW 翻译,小甲鱼校对。

原文链接 -> 传送门

函数功能:

EnumFontFamProc 函数是应用程序定义的回调函数,和 EnumFontFamilies 函数一起使用。它接收描述可用字体的数据。FONTENUMPROC 类型定义此回调函数的指针。EnumFontFamProc 函数是作为应用程序自定义的函数名称的占位符。

注意:EnumFontFamilies 函数只供与 16 位版本的 Windows 的兼容性。新应用程序应使用 EnumFontFamiliesEx 函数。


API 函数原型:

注释:_In_ 说明该参数是输入的。
int CALLBACK EnumFontFamProc(
_In_ ENUMLOGFONT   *lpelf,
_In_ NEWTEXTMETRIC *lpntm,
_In_ DWORD         FontType,
_In_ LPARAM      lParam
);

参数解析:


参数 含义
lpelf1. 指向包含有关逻辑属性的字体信息的 ENUMLOGFONT 结构的指针。该结构是本地定义的。

2. 该参数也可以指向一个 ENUMLOGFONTEXDV 结构
lpntm1. 如果该字体为 TrueType 字体,那么这个参数是指向 NEWTEXTMETRIC 结构的指针,该结构包含字体的物理属性的信息。如果字体不是 TrueType 字体,则此参数是指向 TEXTMETRIC 结构的指针

2. 该参数也可以指向一个 ENUMTEXTMETRIC 结构
FontType指定字体的类型,此参数可以是下列值的组合:

[*]DEVICE_FONTTYPE
[*]RASTER_FONTTYPE
[*]TRUETYPE_FONTTYPE

lParam指向由 EnumFontFamilies 函数传递来的应用程序自定义数据的指针


返回值:

1. 返回值必须是一个非 0 的值,以继续枚举;

2. 若要停止枚举,返回值必须为 0。


备注:

1. 应用程序必须注册此回调函数,通过将它的地址传递给 EnumFontFamilies 函数来完成注册。

2. 当使用 SetGraphicsMode 函数将设备环境的图形模式设置为 GM_ADVANCED,且 DEVICE_FONTTYPE 标志传递给 FontType 参数时,此函数返回类型 1 和系统上的 OpenType 字体。当图形模式未设置为 GM_ADVANCED 时,此函数返回一个列表的类型 1、系统上的 OpenType 和 TrueType 字体。

3. RASTER_FONTTYPE,DEVICE_FONTTYPE 和 TRUETYPE_FONTTYPE 可用与操作符(&)连接起来,用于决定字体的类型。如果 RASTER_FONTTYPE 位被设置,则该字体是一种光栅字体。如果 TRUETYPE_FONTTYPE 位被设置,该字体是一种 TrueType 字体。如果上述两位都未被设置,则该字体是一种向量字体。当一种设备(如激光打印机)支持下载 TrueType 字体或该字体是一种驻留设备的字体,则 DEVICE_FONTTYPE 位被设置,当设备是一种显示设备、点阵打印机或其他光栅设备,则该位为 0。应用程序也可用 DEVICE_FONTTYPE 来区别图形设备接口(GDI)提供的光栅字体和设备提供的字体。GDI 可以为 GDI 提供的光栅字体模拟粗体、斜体、下划线和删除线属性,但却不支持设备提供的字体。


需求:


Minimum supported client Windows 2000 专业版 [仅桌面应用程序]
Minimum supported server Windows 2000 服务器版 [仅桌面应用程序]
Header Wingdi.h (包含于 Windows.h)
Unicode and ANSI namesEnumFontFamProcW (Unicode) 和 EnumFontFamProcA (ANSI)


【API档案】版权归鱼C工作室(www.fishc.com)所有,转载请注明来源。

页: [1]
查看完整版本: EnumFontFamProc