原文链接 -> 传送门
函数功能:
CreateFont 函数创建具有指定特性的逻辑字体。该逻辑字体可在随后被任何设备环境选作当前字体。
API 函数原型:
注释:_In_ 说明该参数是输入的。
HFONT CreateFont( _In_ int nHeight, _In_ int nWidth, _In_ int nEscapement, _In_ int nOrientation, _In_ int fnWeight, _In_ DWORD fdwItalic, _In_ DWORD fdwUnderline, _In_ DWORD fdwStrikeOut, _In_ DWORD fdwCharSet, _In_ DWORD fdwOutputPrecision, _In_ DWORD fdwClipPrecision, _In_ DWORD fdwQuality, _In_ DWORD fdwPitchAndFamily, _In_ LPCTSTR lpszFace );
参数解析:
|
参数 |
含义 |
||||||||||||||||||||||||||||||||
|
nHeight |
1. 字体的字符单元或字符的逻辑单位高度。字符的高度值(也被称为 em 高度)是指字符单元高度值减去内部标头值。字体映射器以如下方式解释 nHeight 指定的值。
1. nHeight = -MulDiv(PointSize, GetDeviceCaps(hDC, LOGPIXELSY), 72); 复制代码 |
||||||||||||||||||||||||||||||||
|
nWidth |
1. 所请求字体字符的逻辑单位的平均宽度 |
||||||||||||||||||||||||||||||||
|
nEscapement |
1. 偏移向量和设备 x 轴之间以十分之一度为单位的角度(偏移向量平行于正文行的基线) |
||||||||||||||||||||||||||||||||
|
nOrientation |
每个字符的基线与设备 x 轴之间以十分之一度为单位的角度 |
||||||||||||||||||||||||||||||||
|
fnWeight |
1. 字体的权值(在 0 ~ 1000 之间)。例如 400 表示标准,700 表示粗体。如果此值为 0,则使用默认的权值
|
||||||||||||||||||||||||||||||||
|
fdwItalic |
如果设置为 TRUE,则字体设置为斜体 |
||||||||||||||||||||||||||||||||
|
fdwUnderline |
如果设置为 TRUE,则字体增加下划线 |
||||||||||||||||||||||||||||||||
|
fdwStrikeOut |
如果设置为 TRUE,则字体增加删除线 |
||||||||||||||||||||||||||||||||
|
fdwCharSet |
1. 字符集,预定义了下列值: · ANSI_CHARSET · BALTIC_CHARSET · CHINESEBIG5_CHARSET · DEFAULT_CHARSET · EASTEUROPE_CHARSET · GB2312_CHARSET · GREEK_CHARSET · HANGUL_CHARSET · MAC_CHARSET · OEM_CHARSET · RUSSIAN_CHARSET’ · SHIFTJIS_CHARSET · SYMBOL_CHARSET · TURKISH_CHARSET · VIETNAMESE_CHARSET
· JOHAB_CHARSET
· ARABIC_CHARSE · HEBREW_CHARSET
· THAI_CHARSET
|
||||||||||||||||||||||||||||||||
|
fdwOutputPrecision |
1. 输出精度。输出精度定义了输出必须在多大程度上与所请求的字体的高度,宽度,字符方向,旋转角度,间距和字体类型相匹配。它可以取下列值之一:
|
||||||||||||||||||||||||||||||||
|
fdwClipPrecision |
裁剪精度。裁剪精度定义如何裁剪部分超出裁剪区的字符,它可取一个或多个下列值:
|
||||||||||||||||||||||||||||||||
|
fdwQuality |
1. 输出质量。输出质量定义 GDI 如何仔细地将逻辑字体属性与实际物理字体属性相匹配。它可取下列值之一:
|
||||||||||||||||||||||||||||||||
|
fdwPitchAndFamily |
1. 字体间距和字体族。低两位指定字体的字符间距,并且它可取下列值之一: · DEFAULT_PITCH · FIXED_PITCH · VARIABLE_PITCH
|
||||||||||||||||||||||||||||||||
|
lpszFace |
1. 以空结束的字符串的指针,并且这个字符串指定字体的字体名称。该字符串的长度不能超过 32 个字符,包括结尾空字符。EnumFontFamilies 函数可用来枚举所有当前可用字体的字体名称。更多信息,请参见备注部分 |
返回值:
1. 如果函数调用成功,返回值是逻辑字体的句柄;
2 .如果函数调用失败,返回值为 NULL。
备注:
1. 当你不再需要一个字体时,可用 DeleteObject 函数来删除它。
2. 为保护那些提供字体给 Windows 的卖主的版权,应用程序总是列出所选择字体的精确名字。因为可使用的字体随系统的变化而变化,不要认为所选择字体总是请求的字体。例如,如果请求叫 Palatino 的字体,但是在系统上内有这个字体可使用,则字体映射器将会用一个不同名称但有相似属性的字体代替。系统总会将选择的字体名报告给用户。
3. 为了在不同语言的操作系统上获取合适的字体,调用 EnumFontFamiliesEx,并在 LOGFONT 结构体中设置需要的字体特性,检索适当的字体名称,并使用 CreateFont 或 CreateFontIndirect 创建字体。
4. 不管系统区域设置为什么,CreateFont, CreateFontIndirect 和 CreateFontIndirectEx 的字体映射器都识别英文和本地字体名称。
5. 下列情况下不支持 ClearType 抗锯齿:
· 打印机上渲染的文本。
· 256 色或更少颜色的显示设置。
· 向终端服务器客户端渲染的文本。
· 字体不是 TrueType 或 具有 TrueType 轮廓的 OpenType 字体。例如,下列的不支持 ClearType 抗锯齿:1号字体,不具有 TrueType 轮廓的 OpenType 字体,位图字体,向量字体,和设备字体。
· 字体已经调整为嵌入位图,仅包含嵌入的位图的字体大小。例如,这在东亚字体中经常出现。
需求:
|
Minimum supported client |
Windows 2000 专业版 [仅桌面应用程序] |
|
Minimum supported server |
Windows 2000 服务器版 [仅桌面应用程序] |
|
Header |
Winuser.h (包含于 Windows.h) |
|
Library |
User32.lib |
|
DLL |
User32.dll |
|
Unicode and ANSI names |
CreateFontW (Unicode) 和 CreateFontA (ANSI) |




