我重载了CtlColor(),颜色是改了,但我发现当我拖动滑条的时候出现模糊现象,应该是背景没有刷新,怎么会怎样?如何解决?

解决方案 »

  1.   

    if(pWnd->GetSafeHwnd() == GetDlgItem(IDC_EDIT_DATA)->GetSafeHwnd())
    { //设置edit的背景色为淡黄
       SetTextColor (pDC->GetSafeHdc(),RGB(0,0,255)); //字体颜色为蓝色
    pDC->SetBkColor(RGB(255,250,208));
    return hbredtmsgcontext;
    ???
    //其中hbredtmsgcontext在构造时创建
      

  2.   

    sinhighly(不想做程序员),能说清楚点吗?
    我的代码如下(出现问题的):
    HBRUSH CMyEditView::CtlColor(CDC* pDC, UINT nCtlColor) 
    {
    // 改变文本的颜色
    pDC->SetBkMode(TRANSPARENT);
    pDC->SetTextColor(RGB(100, 0, 200));
    pDC->SetBkColor(m_clrBack);
    // TODO: Return a non-NULL brush if the parent's handler should not be called
    return (HBRUSH)m_brush.GetSafeHandle();
    }
      

  3.   

    HBRUSH CMyEditView::CtlColor(CDC* pDC, UINT nCtlColor) 
    {
    pDC->SetBkMode(TRANSPARENT);         //去掉这一句就好了。
    pDC->SetTextColor(RGB(100, 0, 200));
    pDC->SetBkColor(m_clrBack);
    return (HBRUSH)m_brush.GetSafeHandle();
    }把SetBkMode去掉,SetBkColor的颜色设成与背景相同也可以实现相同的效果。