原文链接 -> 传送门
函数功能:
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 );
参数解析:
|
参数 |
含义 |
|
lpelf |
1. 指向包含有关逻辑属性的字体信息的 ENUMLOGFONT 结构的指针。该结构是本地定义的。 |
|
lpntm |
1. 如果该字体为 TrueType 字体,那么这个参数是指向 NEWTEXTMETRIC 结构的指针,该结构包含字体的物理属性的信息。如果字体不是 TrueType 字体,则此参数是指向 TEXTMETRIC 结构的指针 |
|
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 names |
EnumFontFamProcW (Unicode) 和 EnumFontFamProcA (ANSI) |




