[問題提出]
你有沒有感到Edit,Static....控件的字體太單調,沒什麼新新樣?下面的內容,給你一個解答.
[解決方法]
簡單的步驟:在Windows中,每個窗體都有自己的字體.要改變其字體首先要CFont::CreateFont創建一個字體,然後用CWnd::SetFont選擇此字體,賦給控件.但很多人可能會因爲CreateFont的參數之多,望而卻步.下面我介紹一下參數.
函數原型:
BOOL CreateFont( int nHeight, int nWidth, int nEscapement, int nOrientation, int nWeight, BYTE bItalic, BYTE bUnderline, BYTE cStrikeOut, BYTE nCharSet, BYTE nOutPrecision, BYTE nClipPrecision, BYTE nQuality, BYTE nPitchAndFamily, LPCTSTR lpszFacename );
參數說明:
nHeight :字體高度.>0:字體的高度值;=0:字體採用缺省直.<0:此值的絕對值爲高度.
nWidth :字體寬度.
nEscapement :文本行的傾斜度.
nOrientation :字符基線的傾斜度.
nWeight :字體的粗細.如下:
.FW_DONTCARE
.FW_THIN
.FW_EXTRALIGHT
.....
bItalic :字體是否爲斜體
bUnderline :字體是否帶下劃線
cStrikeOut :字體是否帶刪除線
nCharSet :字體的字符集
.ANSI_CHARSET
.DEFAULT_CHARSET
.SYMBOL_CHARSET
......
nOutPrecision :字符的輸出精度
nClipPrecision :字符裁剪的精度
nQuality :字符的輸出質量
nPitchAndFamily :字符間距和字體族(低位說明間距,高位說明字符族)
lpszFacename :字體名稱
[程序實現]
假設你已有了名爲My的對話框工程.並有一個ID=IDC_EDIT1的Edit控件.
class CMyDlg : public CDialog
{
public:
CFont m_Font;
........
};
BOOL CTMyDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
CFont m_Font;
m_Font.CreateFont(-11,0,0,0,100,FALSE,FALSE,0,ANSI_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,FF_SWISS,"Arial");
CEdit *m_Edit=(CEdit *)GetDlgItem(IDC_EDIT1);
m_Edit->SetFont(&m_Font,FALSE);
return TRUE; // return TRUE unless you set the focus to a control
}