MFC靜態文本框設置字體和顏色


在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.效果圖

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM