我想让CEditView的视变成其它的颜色,我用了下面这种方法没成功。可能这种办法智能对用来画图的视有作用。请各位指教如何在CEditView (能直接在上面写字的那个类) 中改变视的颜色。BOOL CMyEditView::OnEraseBkgnd(CDC* pDC)
{
// TODO: Add your message handler code here and/or call default
//设置brush为希望的背景颜色
CBrush backBrush(RGB(0x00, 0xd0, 0xc8)); //保存旧的brush
CBrush* pOldBrush = pDC->SelectObject(&backBrush);
CRect rect;
//画需要的区域
pDC->PatBlt(rect.left, rect.top, rect.Width(), rect.Height(), PATCOPY);
pDC->SelectObject(pOldBrush); return CEditView::OnEraseBkgnd(pDC);
}
{
// TODO: Add your message handler code here and/or call default
//设置brush为希望的背景颜色
CBrush backBrush(RGB(0x00, 0xd0, 0xc8)); //保存旧的brush
CBrush* pOldBrush = pDC->SelectObject(&backBrush);
CRect rect;
//画需要的区域
pDC->PatBlt(rect.left, rect.top, rect.Width(), rect.Height(), PATCOPY);
pDC->SelectObject(pOldBrush); return CEditView::OnEraseBkgnd(pDC);
}
CBrush m_bkBrush;在你的EditView的构造函数中创建一个画刷如下:
CMy5View::CMy5View()
{
m_bkBrush.CreateSolidBrush(RGB(0,128,255));
}
//注:CMy5View为我从CEditView派生的类重载CEditView的=WM_CTLCOLOR消息,在消息响应函数中如下处理:
HBRUSH CMy5View::CtlColor(CDC* pDC, UINT nCtlColor)
{
if(nCtlColor == CTLCOLOR_EDIT) {
pDC->SetBkMode(TRANSPARENT);//如果没有这行,在Edit中输入文字的时候,文字的背景是白色的(也就是默认的颜色)
return static_cast<HBRUSH>(m_bkBrush.GetSafeHandle());
}
return NULL;
}新鲜出炉,保管好用!楼主参考一下!
呵呵……