我在初始化时把ceditview改为了只读,其背景也变成了灰色,我重载OnEraseBkgnd将其背景改为了白色,但当我往此editview中插入了字符时,插入字符的行又变为了灰色!请问这是为什么??

解决方案 »

  1.   

    响应ON_WM_CTLCOLOR_REFLECT试试?
    在里面调用pDC->SetBkMode(TRANSPARENT);
    或者,你在你的OnEraseBkgnd中调用pDC->SetBkMode(TRANSPARENT);
      

  2.   

    我用pDC->SetBkMode(TRANSPARENT)了,可是插入字符后还是变成了灰色
    还有,ON_WM_CTLCOLOR_REFLECT好像只能在对话框里调用吧,试图里好像调用不了
      

  3.   

    HBRUSH CMyEditView::CtlColor(CDC* pDC, UINT nCtlColor) 
    {
    // TODO: Change any attributes of the DC here
    if (nCtlColor==CTLCOLOR_STATIC)
    {
    pDC->SetBkMode(TRANSPARENT);
    pDC->SetBkColor(RGB(105,191,53));
    pDC->SetTextColor(RGB(255,0,0));
    return (HBRUSH)m_brush;
    }
    // TODO: Return a non-NULL brush if the parent's handler should not be called
    return NULL;
    }