原文链接 -> 传送门
函数功能:
CreateFontIndirect 函数创建具有指定特性的逻辑字体。字体可在随后被任何设备环境选作当前字体。
API 函数原型:
注释:_In_ 说明该参数是输入的。
HFONT CreateFontIndirect( _In_ const LOGFONT *lplf );
参数解析:
|
参数 |
含义 |
|
lplf |
指向定义此逻辑字体特性的 LOGFONT 结构的指针 |
返回值:
1. 如果函数调用成功,返回值为逻辑字体的句柄;
2. 如果函数调用失败,返回值为 NULL。
备注:
1. CreateFontIndirect 函数创建一个在结构 LOGFONT 结构中定义特性的逻辑字体。当使用 SelectObject 函数选择这个字体时,GDI 的字体映射器会试图将此逻辑字体与现有物理字体相匹配,如果不能找到精确匹配,将会提供另一种选择,其特性与所要求的特性尽可能地匹配。
2. 为了在不同语言的操作系统上获取合适的字体,调用 EnumFontFamiliesEx 函数,并在 LOGFONT 结构体中设置需要的字体特性,检索适当的字体名称,并使用 CreateFont 函数或 CreateFontIndirect 函数创建字体。
3. 当不再需要该字体时,可调用 DeleteObject 函数删除它。
4. 许多东亚语言的字体有两种字体名称:一个英文名称和一个本地名称。只有在系统区域设置与语言相匹配的情况下,CreateFont 函数和 CreateFontIndirect 函数才采用本地化字体名称,其他系统区域设置,函数使用英文字体名称。最好的方法是先尝试一个名称,如果失败,就换另一个。注意如果系统区域设置与字体语言不匹配,EnumFonts, EnumFontFamilies 和 EnumFontFamiliesEx 返回英文字体名称。
5. 不管系统区域设置为什么,CreateFont, CreateFontIndirect 和 CreateFontIndirectEx的字体映射器都识别英文和本地字体名称。
需求:
|
Minimum supported client |
Windows 2000 专业版 [仅桌面应用程序] |
|
Minimum supported server |
Windows 2000 服务器版 [仅桌面应用程序] |
|
Header |
Wingdi.h (包含于 Windows.h) |
|
Library |
Gdi32.lib |
|
DLL |
Gdi32.dll |
|
Unicode and ANSI names |
CreateFontIndirectW (Unicode) 和 CreateFontIndirectA (ANSI) |




