CFontDialog类封装了Windows"字体"对话框。用户可以从系统安装的字体列表中选择要用的字体,同时在"字体"对话框中还可以设置字体大小、颜色、效果、字符集等属性。可以通过构造函数CFontDialog构造"字体"对话框。
语法格式如下:
CFontDialog( LPLOGFONT lplfInitial = NULL, DWORD dwFlags = CF_EFFECTS | CF_SCREENFONTS, CDC* pdcPrinter = NULL, CWnd* pParentWnd = NULL );
|
CFontDialog构造函数中的参数说明如表6.6所示。
表6.6 CFontDialog构造函数中的参数说明
参 数
|
描 述
|
lplfInitial
|
LOGFONT结构指针,用于设置默认的字体
|
dwFlags
|
用于控制对话框的行为
|
pdcPrinter
|
打印机设备内容指针
|
pParentWnd
|
“字体”对话框父窗口指针
|
"字体"对话框的常用函数如表6.7所示。
表6.7 "字体"对话框的常用函数
函 数
|
功 能 描 述
|
DoModal
|
用于显示“字体”对话框,供用户设置字体
|
GetCurrentFont
|
用于获取当前的字体
|
GetFaceName
|
用于获取“字体”对话框中选择的字体名称
|
GetStyleName
|
用于返回“字体”对话框中选择的字体风格名称
|
GetSize
|
用于获取字体的大小
|
GetColor
|
用于获取选择的字体颜色
|
GetWeight
|
用于获取字体的磅数
|
例6.7 下面使用"字体"对话框设置编辑框控件中显示文本的字体。程序设计步骤如下:
(1)创建一个基于对话框的应用程序,将对话框的Caption属性修改为"使用'字体'对话框设置文本字体"。
(2)向对话框中添加一个编辑框控件和一个按钮控件。
(3)在对话框头文件中声明一个CFont对象m_Font。
(4)处理"字体"按钮的单击事件,创建"字体"对话框,设置在编辑框中显示文本的字体。代码如下:
void CFontDialogDlg::OnFont() //"字体"按钮单击事件处理函数 { CFont* TempFont = m_Text.GetFont(); //获取编辑框当前字体 LOGFONT LogFont; //声明LOGFONT结构指针 TempFont->GetLogFont(&LogFont); //获得字体信息 CFontDialog dlg(&LogFont); //初始化字体信息 if(dlg.DoModal()==IDOK) //判断是否按下"确定"按钮 { m_Font.Detach(); //分离字体 LOGFONT temp; //声明LOGFONT结构指针 dlg.GetCurrentFont(&temp); //获取当前字体信息 m_Font.CreateFontIndirect(&temp); //直接创建字体 m_Text.SetFont(&m_Font); //设置字体 } }
|
|