可能在OnH(V)ScrollBar里要Invalidate();
you can try

解决方案 »

  1.   

    重载OnEraseBackground(),在那里填充整个client rectangle
      

  2.   

    To DoItFreely:你的意思是:
    BOOL CLab4ProgressView::OnEraseBkgnd(CDC* pDC) 
    {
    // TODO: Add your message handler code here and/or call default
    CRect rect;
    GetClientRect(&rect);
    CBrush brush;
    brush.CreateSolidBrush( RGB(0xFF,0xFF,0x00) );  pDC->FillRect(&rect,&brush);
    // fill the view
    Invalidate(false); 
    return CScrollView::OnEraseBkgnd(pDC);
    }不行啊,应该怎样?? 谢谢!
      

  3.   

    BOOL CLab4ProgressView::OnEraseBkgnd(CDC* pDC) 
    {
    // TODO: Add your message handler code here and/or call default
    CRect rect;
    GetClientRect(&rect);
    CBrush brush;
    brush.CreateSolidBrush( RGB(0xFF,0xFF,0x00) ); pDC->FillRect(&rect,&brush);
    // fill the view
    Invalidate(false); 
    //return CScrollView::OnEraseBkgnd(pDC);
    ////////////////////////return TRUE;
    //////////////////////
    }
      

  4.   


    Great !但是为什么它的默认值不是True 呢??它本来就是bool啊 为什么又要写return CScrollView::OnEraseBkgnd(pDC);

      误导观众呢?你知道return CScrollView::OnEraseBkgnd(pDC);的作用是什么吗?DoItFreely加了分了,waiting for your answer.
      

  5.   


    感谢您使用微软产品。分数对我们没什么用处,给其它热心讨论的网友吧;您的问题能解决才是我最想看到的:)
    根据您对问题的描述,咱们可以依次试一下面的方法:步骤一、...步骤二、...步骤三、...
    -微软亚洲技术中心Windows 技术支持本贴子仅供CSDN的用户作为参考信息使用。其内容不具备任何法律保障。您需要考虑到并承担使用此信息可能带来的风险。具体事项可参见使用条款 (http://www.csdn.net/microsoft/terms.shtm)。
      

  6.   

    按CScrollView的成员OnEraseBkgnd()做缺省处理,就是fill成WHITE的背景,所以,你要是不*忍心*丢弃或者希望利用它的缺省处理,就先CScrollView::OnEraseBkgnd(pDC);再调用你自己的填充代码。
    返回TRUE表示你已经处理了该消息,让MFC不要再做处理,要不,MFC就会用缺省的brush填充背景,一般也是填成白色。