使用常用字体绘制文本
系统提供六种常用字体。 常用字体是应用程序可以通过调用 GetStockObject 函数并指定请求的字体来获取的逻辑字体。 以下列表包含可以指定以获取常用字体的值。
值 | 含义 |
---|---|
ANSI_FIXED_FONT | 根据 Windows 字符集指定单空格字体。 通常使用 Courier 字体。 |
ANSI_VAR_FONT | 根据 Windows 字符集指定比例字体。 通常使用 MS Sans Serif。 |
DEVICE_DEFAULT_FONT | 指定指定设备的首选字体。 这通常是显示设备的系统字体;但是,对于某些点阵打印机,这是驻留在设备上的字体。 (使用此字体打印通常比使用下载的位图字体) 打印更快。 |
OEM_FIXED_FONT | 根据 OEM 字符集指定单空格字体。 对于 IBM 计算机和兼容设备,OEM 字体基于 IBM 电脑字符集。 |
SYSTEM_FONT | 指定 System 字体。 这是一种基于 Windows 字符集的成比例字体,操作系统使用它在对话框中显示窗口标题、菜单名称和文本。 系统字体始终可用。 其他字体仅在已安装时可用。 |
SYSTEM_FIXED_FONT | 指定与早期版本的 Windows 中的系统字体兼容的单空间字体。 |
有关字体的详细信息,请参阅 关于字体。
以下示例检索变量常用字体的句柄,将其选择到设备上下文中,然后使用该字体编写字符串:
HFONT hFont, hOldFont;
// Retrieve a handle to the variable stock font.
hFont = (HFONT)GetStockObject(ANSI_VAR_FONT);
// Select the variable stock font into the specified device context.
if (hOldFont = (HFONT)SelectObject(hdc, hFont))
{
// Display the text string.
TextOut(hdc, 10, 50, L"Sample ANSI_VAR_FONT text", 25);
// Restore the original font.
SelectObject(hdc, hOldFont);
}
如果其他常用字体不可用, GetStockObject 将返回系统字体 (SYSTEM_FONT) 句柄。 仅当应用程序设备上下文的映射模式MM_TEXT时,才应使用常用字体。