勇芳软件工作室.汉化:  Fonts and Text > Fonts and Text Functions >

CreateFontIndirect

Previous pageReturn to chapter overviewNext page

描述

 

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所需的字体特征,检索相应的字体名称,然后使用CreateFontCreateFontIndirect创建字体。

 

当您不再需要该字体时,请调用DeleteObject功能将其删除。

 

Windows 95/98和Windows NT 4.0:许多东亚语言的字体有两个字体名称:英文名称和本地化名称。CreateFontCreateFontIndirect仅在与该语言匹配的系统区域设置上使用本地化字体名称,而在所有其他系统区域设置中使用英文字体名称。最好的方法是尝试一个名字,失败后再试一下。请注意,如果系统区域设置与字体的语言不匹配,EnumFontFamiliesEnumFontFamiliesEnumFontFamiliesEx将返回英文字体名称。

 

Windows 2000 / XP / Vista / Windows 7CreateFontCreateFontIndirectCreateFontIndirectEx的字体映射程序会识别英文和本地化字体名称,而不管语言环境。

 

Windows 95/98 / Me:Microsoft Layer for Unicode支持CreateFontIndirectW.

 

引用文件 #INCLUDE Once

 

WinGdi.inc(包括Windows.inc)