在MFC中,static text控件可以很方便的顯示文字,但是如果想修改字體風格大小以及顏色,應該怎么修改呢?
1.要修改字體,需要用到CFont類,這個類可以修改字體的各種屬性
1 CFont m_font; 2 m_font.CreateFont(14,0,0,0,FW_BOLD,FALSE,FALSE,FALSE, 3 ANSI_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS, 4 DEFAULT_QUALITY,DEFAULT_PITCH | FF_SWISS,_T("宋體"));//寬度為14、粗體的宋體字符
2.重載WM_CTLCOLOR消息的響應函數,框架在將要繪制子控件時調用此函數,我們可以在這個消息的響應函數里添加代碼來繪制我們的控件
1 if (pWnd->GetDlgCtrlID() == IDC_STATIC) 2 { 3 pDC->SelectObject(&m_font);//選擇字體 4 }
3.修改顏色,也是在OnCtlColor函數中
1 if (pWnd->GetDlgCtrlID() == IDC_STATIC) 2 { 3 pDC->SetTextColor(RGB(255, 0, 0));//用RGB宏改變顏色
4 }
4.最終代碼
1 HBRUSH CXXDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 2 { 3 HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor); 4 5 // TODO: 在此更改 DC 的任何特性 6 if (pWnd->GetDlgCtrlID() == IDC_STATIC) 7 { 8 pDC->SetTextColor(RGB(255, 0, 0));//用RGB宏改變顏色 9 pDC->SelectObject(&m_font); 10 } 11 // TODO: 如果默認的不是所需畫筆,則返回另一個畫筆1 12 return hbr; 13 }
5.效果圖