您的位置:首页 > 其它

CEDIT 控件背景色和字体色--重写CTLCOLOR

2015-12-03 21:22 246 查看
先在对话框添加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;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: