首先了解LOGFONT结构体 :标红的一般为需要设置的属性,
lfHeight
: 字体的平均字符高度,指定为负数表示与设备相关(使用设备逻辑单位)。
lfWidth
: 字体字符的平均宽度,通常忽略此值。
lfEscapement
: 字符串的输出方向与 x 轴的角度,以十进制度数表示。
lfOrientation
: 字符串的基线方向与 x 轴的角度,以十进制度数表示。
lfWeight
: 字体的粗细程度,取值范围从 0 到 1000。(一般400为常规,700为粗体)
lfItalic
: 是否将字体设置为斜体(非零值表示是)。
lfUnderline
: 是否将字体设置为下划线(非零值表示是)。
lfStrikeOut
: 是否将字体设置为删除线(非零值表示是)。
lfCharSet
: 字符集标识,指定字体所支持的字符集。
lfOutPrecision
: 输出精度,指定用于选择字体的输出精度。
lfClipPrecision
: 剪辑精度,指定用于选择字体的剪辑精度。
lfQuality
: 字体质量,指定用于选择字体的质量级别。
lfPitchAndFamily
: 字体类型和字体系列的属性。
lfFaceName
: 字体名称字符串,用于存储字体的名称。
实现的代码如下:
CFontDialog dlg;
LOGFONT lf;
memset(&lf, 0, sizeof(LOGFONT));
lstrcpy(lf.lfFaceName, _T("Arial"));
lf.lfHeight = -24;
lf.lfWeight = FW_NORMAL;
dlg.m_cf.lpLogFont = &lf;//1.设置LPLOGFONTW类型指针,用来初始化CFontDialog ;
dlg.m_cf.Flags |= CF_INITTOLOGFONTSTRUCT;//2.设置 CF_INITTOLOGFONTSTRUCT 标志并用与
// LOGFONT 成员匹配的字体初始化对话框
同时也可以用某个控件的字体来初始化CFontDialog,列如用CEdit类字体初始化:
CFontDialog dlg;
CEdit m_Edit ;//关联某个Edit控件
CFont m_font=mEdit.GetFont();
LOGFONT lf;
memset(&lf, 0, sizeof(LOGFONT));
m_font.GetLogFont(&lf);
dlg.m_cf.lpLogFont = &lf;
dlg.m_cf.Flags |= CF_INITTOLOGFONTSTRUCT;