CFontDialog類(lèi)封裝了Windows"字體"對話(huà)框。用戶(hù)可以從系統安裝的字體列表中選擇要用的字體,同時(shí)在"字體"對話(huà)框中還可以設置字體大小、顏色、效果、字符集等屬性??梢酝ㄟ^(guò)構造函數CFontDialog構造"字體"對話(huà)框。
語(yǔ)法格式如下:
CFontDialog( LPLOGFONT lplfInitial =
NULL, DWORD dwFlags = CF_EFFECTS |
CF_SCREENFONTS, CDC* pdcPrinter =
NULL, CWnd* pParentWnd = NULL );
CFontDialog構造函數中的參數說(shuō)明如表6.6所示。
表6.6 CFontDialog構造函數中的參數說(shuō)明
參 數
描 述
lplfInitial
LOGFONT結構指針,用于設置默認的字體
dwFlags
用于控制對話(huà)框的行為
pdcPrinter
打印機設備內容指針
pParentWnd
“字體”對話(huà)框父窗口指針
"字體"對話(huà)框的常用函數如表6.7所示。
表6.7 "字體"對話(huà)框的常用函數
函 數
功 能 描 述
DoModal
用于顯示“字體”對話(huà)框,供用戶(hù)設置字體
GetCurrentFont
用于獲取當前的字體
GetFaceName
用于獲取“字體”對話(huà)框中選擇的字體名稱(chēng)
GetStyleName
用于返回“字體”對話(huà)框中選擇的字體風(fēng)格名稱(chēng)
GetSize
用于獲取字體的大小
GetColor
用于獲取選擇的字體顏色
GetWeight
用于獲取字體的磅數
例6.7 下面使用"字體"對話(huà)框設置編輯框控件中顯示文本的字體。程序設計步驟如下:
(1)創(chuàng )建一個(gè)基于對話(huà)框的應用程序,將對話(huà)框的Caption屬性修改為"使用'字體'對話(huà)框設置文本字體"。
(2)向對話(huà)框中添加一個(gè)編輯框控件和一個(gè)按鈕控件。
(3)在對話(huà)框頭文件中聲明一個(gè)CFont對象m_Font。
(4)處理"字體"按鈕的單擊事件,創(chuàng )建"字體"對話(huà)框,設置在編輯框中顯示文本的字體。代碼如下:
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); //直接創(chuàng )建字體
m_Text.SetFont(&m_Font); //設置字體
}
}