先在对话框添加WM_CTLCOLOR消息函数,然后编辑WM_CTLCOLOR消息函数代码,代码如下。
HBRUSH CMessageView::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CEditView::OnCtlColor(pDC, pWnd, nCtlColor);
// TODO: 在此更改 DC 的任何特性
if (nCtlColor == CTLCOLOR_EDIT)
{
pDC->SetTextColor(RGB(200, 45, 0));//设置字体颜色
pDC->SetBkColor(RGB(255, 255, 255));//设置字体背景颜色
HBRUSH B = CreateSolidBrush(RGB(255, 255, 255));//背景色
return B;
}
// TODO: 如果默认的不是所需画笔,则返回另一个画笔
return hbr;
}
如果要改变IDC_EDIT1控件的颜色,在对话框中添加 WM_CTLCOLOR 消息处理函数,添加方法与鼠标,键盘消息一样。
函数内添加下列代码即可。
HBRUSH CTestDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
if (pWnd->GetDlgCtrlID() == IDC_EDIT1) //控件
{
pDC->SetTextColor(RGB(255, 0, 0));
}
return hbr;
}
函数内添加下列代码即可。
HBRUSH CTestDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
if (pWnd->GetDlgCtrlID() == IDC_EDIT1) //控件
{
pDC->SetTextColor(RGB(255, 0, 0));
}
return hbr;
}