我想让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);
}

解决方案 »

  1.   

    在你的EditView的头文件中定义一个画刷对象
    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;
    }新鲜出炉,保管好用!楼主参考一下!
    呵呵……