修改MFC控件、按钮、背景和字体的颜色
通过MFC的类向导,添加WM_CTLCOLOR、WM_PAINT、WM_DRAWITEM消息,对应的函数分别如下:
1、控件颜色 HBRUSH CMain::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
可以设置编辑框、静态文本等的背景颜色,同时也可以设置文本颜色
HBRUSH CMain::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor);
if(pWnd->GetDlgCtrlID( ) == (IDC_STATIC)) //主界面
{
//pDC->SetBkMode(TRANSPARENT);
pDC->SetTextColor(RGB(30,100,200)); //设置文本颜色
pDC->SetBkColor(RGB(200,230,255)); //字体背景色
return HBRUSH(GetStockObject(HOLLOW_BRUSH));
}
return hbr;
}
2、背景颜色 void CMain::OnPaint()
void CMain::OnPaint()
{
CRect rect;
CPaintDC dc(this);
GetClientRect(rect);
dc.FillSolidRect(rect,RGB(200,230,255)); //设置背景颜色
}
3、按钮颜色 void CMain::OnDrawItem(int nIDCtl, LPDRAWITEMSTRUCT lpDrawItemStruct)
按钮属