<pre name="code" class="cpp"><pre name="code" class="cpp">HBRUSH CfunctionCallDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor);
// TODO: 在此更改 DC 的任何特性
if (nCtlColor == CTLCOLOR_DLG || nCtlColor == CTLCOLOR_STATIC){//更改一类控件颜色、背景色
pDC->SetTextColor(RGB(0, 0, 0));
pDC->SetBkColor(RGB(204, 204, 153));
HBRUSH b = CreateSolidBrush(RGB(204, 204, 153));
return b;
}
if (pWnd == &m_ctrlDisplayAll){//更改一个控件的颜色
HBRUSH newHbr = CreateSolidBrush(RGB(0, 0, 0));
pDC->SetBkMode(TRANSPARENT);
pDC->SetTextColor(RGB(255, 255, 255));
pDC->SetBkColor(RGB(0, 0, 0));
return newHbr;
}
//if (pWnd->GetDlgCtrlID() == IDC_STATICTestCaseName)
//{
//只在有字的地方有背景色
// pDC->SetTextColor(RGB(0, 0, 0)); //字体颜色
// pDC->SetBkColor(RGB(204, 204, 153)); //字体背景色
//}
return hbr;
}
注:MFC中尽量不要使用纯白色RGB(255,255,255)和纯黑RGB(0, 0, 0),两种颜色混在一起可能产生意想不到的结果:在Edit刷屏时,出现严重字符混乱,此时可以把黑色改为(1,1,1).