一、创建字体
1.CreatePointFont
示例:创建9号微软雅黑字体
CFont font;
font.CreatePointFont(90, TEXT("微软雅黑"));
2.CreateFontIndirect
示例:创建9号微软雅黑字体
LOGFONT logFont;
memset(&logFont, 0, sizeof(logFont));
// 字体大小
logFont.lfHeight = -MulDiv(9, GetDeviceCaps(dc.GetSafeHdc(), LOGPIXELSY), 72);
logFont.lfWidth = 0; // 字体的宽度(默认)
logFont.lfWeight = 0; // 字体的磅数(默认,FW_BOLD为加粗)
logFont.lfItalic = 0; // 斜体
logFont.lfUnderline = 0; // 下划线
logFont.lfStrikeOut = 0; // 删除线
logFont.lfCharSet = 0; // 字符集(默认)
// 字体名称
_stprintf(logFont.lfFaceName, TEXT("%s"), TEXT("微软雅黑"));
CFont font;
font.CreateFontIndirect(&logFont);
二、获取系统字体
1.Win32
HGDIOBJ GetStockObject(
int fnObject // stock object type
);
常见系统字体如下:
DEFAULT_GUI_FONT
SYSTEM_FONT
示例:
HFONT hGuiFont = (HFONT)::GetStockObject(DEFAULT_GUI_FONT);
2.MFC
示例:
HFONT hGuiFont = (HFONT)::GetStockObject(DEFAULT_GUI_FONT);
CFont* pGuiFont = CFont::FromHandle(hGuiFont);