MFC 控制元件字型樣式和顏色設定
阿新 • • 發佈:2019-01-22
因為預設的字型大小比較小,且有時為了美觀,MFC控制元件的字型樣式更改有時顯得比較重要。這一修改並不是很直觀,需要經由程式碼來完成,程式碼如下:
要改變控制元件的字型顏色則更加複雜一點,需要做以下幾點CFont *m_pFont;//建立新的字型 m_pFont = new CFont; m_pFont->CreateFont(32, // 字型高度 0, // 字型寬度 0, // 字型傾斜角 0, // 字型傾斜角 FW_EXTRALIGHT, // 字型的粗細 FALSE, // 字型是否為斜體 FALSE, // 字型是否有下劃線 0, // 字型是否有刪除線 ANSI_CHARSET, // 字型使用的字符集 OUT_DEFAULT_PRECIS, // 指定如何選擇合適的字型 CLIP_DEFAULT_PRECIS, // 確定裁剪的精度 DEFAULT_QUALITY, // 怎麼樣跟選擇的字型相符合 DEFAULT_PITCH | FF_SWISS, // 間距標誌和屬性標誌 _T("楷體")); // 字型的名稱 //標籤控制元件 m_EditControl.SetFont(m_pFont, false); //將編輯框與設定字型相關聯 //按鈕控制元件 mybutton.SetFont(m_pFont, false);//對於按鍵也同理,mybutton為CButton物件 //列表控制元件 list.SetFont(m_pFont, false);//list為CListCtrl物件 list.InsertColumn(0, _T("學號"), LVCFMT_LEFT, 110); list.InsertColumn(1, _T("姓名"), LVCFMT_LEFT, 110);
1.定義畫刷物件
CBrush m_Brush;//畫刷工具
2.初始化畫刷物件m_Brush.CreateSolidBrush(GetSysColor(COLOR_3DFACE));//初始化畫刷,用GetSysColor返回對話方塊背景色
3.新增對話方塊的WM_CTLCOLOR訊息相應
4.在對話方塊的訊息響應函式中新增如下程式碼
經過上面的操作,可以得到如下的效果: 未修改原圖 修改後影象if (nCtlColor == CTLCOLOR_STATIC)//CTLCOLOR_STATIC為標籤控制元件 { if (pWnd->GetDlgCtrlID() == IDC_STATIC_FONT)//特定的某一個標籤,IDC_STATIC_FONT為標籤控制元件ID { pDC->SetBkMode(BKMODE_LAST);//透明 pDC->SetTextColor(RGB(255, 0, 0)); //文字顏色 //pDC->SetBkColor(RGB(251, 247, 200));//背景色 return (HBRUSH)m_Brush.GetSafeHandle(); } }