如何通过CFont加载系统自带字体?
时间: 2024-12-23 07:22:31 浏览: 14
在 MFC 中,你可以使用 `CreateFont()` 或者 `CreateStockObject()` 函数来加载系统自带的字体。这里是一个简单的示例:
```cpp
// 加载系统默认的 "Arial" 字体
HFONT hDefaultFont = NULL;
hDefaultFont = (HFONT)CreateFont(
0, // 高度(像素)
0, // 宽度(像素)
0, // 上倾斜角度
0, // 下倾斜角度
FW_NORMAL, // 粗细(例如 FW_NORMAL=常规)
FALSE, // 是否加粗
FALSE, // 是否斜体
FALSE, // 是否下划线
ANSI_CHARSET, // 字符集
OUT_TT_PRECIS, // 输出精度
CLIP_DEFAULT_PRECIS, // 裁剪精度
DEFAULT_QUALITY, // 质量
FF_DONTCARE | DEFAULT_PITCH, // 字型和字距调整
L"Arial"); // 字体名称
if (hDefaultFont != NULL)
{
// 设置窗口的字体
CDC* pDC = &m_wndDoc.GetDC();
pDC->SelectObject(hDefaultFont);
// 释放DC并关闭字体
pDC->ReleaseDC(NULL);
DeleteObject(hDefaultFont);
}
else
{
// 处理加载失败的情况
AfxMessageBox("Failed to load system font.");
}
```
在这个例子中,`L"Arial"` 是要加载的字体名称,你需要替换为你想要的字体名。如果成功,`hDefaultFont` 就会指向一个有效的字体句柄,可以用于绘制文本。
阅读全文