描述
CreateFontIndirect函数创建一个具有指定特征的逻辑字体。该字体随后可以被选择为任何设备上下文的当前字体。
C++ 语法
HFONT CreateFontIndirect( __in const LOGFONT* lplf ); |
PowerBASIC 语法
FUNCTION CreateFontIndirectA ( _ BYREF lplf AS LOGFONTA _ ) AS LONG |
Unicode版本:
FUNCTION CreateFontIndirectW ( _ BYREF lplf AS LOGFONTW _ ) AS LONG |
参数
lplf
[in]指向定义逻辑字体特征的LOGFONT结构的指针。
返回值
如果函数成功,则返回值是逻辑字体的句柄。
如果函数失败,返回值为NULL。
Windows NT / 2000 / XP / Vista / Windows 7:要获取扩展错误信息,请调用GetLastError.
备注
CreateFontIndirect函数创建具有LOGFONT结构中指定的特征的逻辑字体。当使用SelectObject功能选择此字体时,GDI的字体映射器将尝试将逻辑字体与现有物理字体进行匹配。如果找不到精确的匹配,它提供了一个替代方案,其特征与尽可能多的请求特性相匹配。
要在不同语言版本的操作系统上获取适当的字体,请在LOGFONT结构中调用EnumFontFamiliesEx所需的字体特征,检索相应的字体名称,然后使用CreateFont或CreateFontIndirect创建字体。
当您不再需要该字体时,请调用DeleteObject功能将其删除。
Windows 95/98和Windows NT 4.0:许多东亚语言的字体有两个字体名称:英文名称和本地化名称。CreateFont和CreateFontIndirect仅在与该语言匹配的系统区域设置上使用本地化字体名称,而在所有其他系统区域设置中使用英文字体名称。最好的方法是尝试一个名字,失败后再试一下。请注意,如果系统区域设置与字体的语言不匹配,EnumFontFamilies,EnumFontFamilies和EnumFontFamiliesEx将返回英文字体名称。
Windows 2000 / XP / Vista / Windows 7:CreateFont,CreateFontIndirect和CreateFontIndirectEx的字体映射程序会识别英文和本地化字体名称,而不管语言环境。
Windows 95/98 / Me:Microsoft Layer for Unicode支持CreateFontIndirectW.
引用文件 #INCLUDE Once
WinGdi.inc(包括Windows.inc)