MFC怎么获取系统字体类型
时间: 2024-11-27 07:08:52 浏览: 19
在MFC(Microsoft Foundation Classes)中,你可以通过Windows API函数来获取系统的字体类型。MFC提供了一种方便的方式来封装底层操作,例如`CFont::FromHandle` 和 `CFont::CreateStockObject` 可以帮助你。
以下是一个简单的步骤:
1. 首先,创建一个`CFont`对象,这将用于存储字体信息:
```cpp
CFont* pFont = NULL;
```
2. 使用`CFONTMAP`来访问系统预设的字体集合,`CFont::CreateStockObject`就是基于这个集合:
```cpp
CPalette pal;
pal.CreateHalftone();
pFont = CFont::FromHandle(NULL); // 创建无名字体
if (!pFont)
{
HFONT hFont = ::GetStockObject(DEFAULT_GUI_FONT);
if (hFont)
{
pFont->Create(hFont, TRUE, pal); // 设置默认GUI字体
}
}
else
{
pFont->Select(0); // 获取当前系统字体
}
```
这里`DEFAULT_GUI_FONT`是Windows的一个常量,代表常见的GUI字体。
3. 要获得具体的字体名称,可以使用`TCHAR`类型的数组,然后调用`pFont->GetFaceName()` 来获取字体名称:
```cpp
TCHAR szFaceName[LF_FACESIZE];
pFont->GetFaceName(szFaceName);
```
现在`szFaceName`就包含了所选字体的类型。
阅读全文