万恶的对话框画图~背景图带滚动条,双缓冲,问题是我拖动画上去的图,旧的图没擦除

如题,我的背景图是动态导入的,在一个文件夹中有很多可选的,当我不导背景的时候,拖动图元很正常,可是导入背景图后拖动图元旧的不擦除,重新再随便导个背景旧的就擦除了。。

贴上部分代码

在OnPaint中:
  CPaintDC dc(this);
  Redraw();
  CDialog::OnPaint();
在自定义的Redraw()中:
  C/C++ code
CDC *pDC=GetDC();
    CDC MemDC;    
    CRect rcclient;
    GetClientRect(&rcclient);
    MemDC.CreateCompatibleDC( pDC);
    if (ExistBK==TRUE)
    {
        if (bk_flag==1)
        {
            VERIFY(m_hBmpOld = (HBITMAP)SelectObject(MemDC,m_hBmpTemp) );
            bk_flag=0;
        }
        else
        {
            SelectObject(MemDC,m_hBmpTemp);
        }        
        
        for (int i=0;i<ptrArray.GetSize();i++)
        {
            ((PicElement *)ptrArray.GetAt(i))->DrawElement(&MemDC);
        }

        pDC->BitBlt(offsetx,offsety,m_size.cx,m_size.cy, &MemDC, sourcex, sourcey,SRCCOPY);        
        erase=false;
        
        MemDC.DeleteDC();
    }

    else 
    {
        CBitmap MemBitmap;
        MemBitmap.CreateCompatibleBitmap(pDC,rcclient.right,rcclient.bottom);
        CBitmap *pOldBit=MemDC.SelectObject(&MemBitmap);
        MemDC.BitBlt(rcclient.left,rcclient.top,rcclient.right,rcclient.bottom,pDC,0,0,SRCCOPY);
        for (int i=0;i<ptrArray.GetSize();i++)
        {
            ((PicElement *)ptrArray.GetAt(i))->DrawElement(&MemDC);
        }
        
        pDC->BitBlt(rcclient.left,rcclient.top,rcclient.right,rcclient.bottom,&MemDC,0,0,SRCCOPY);
        MemDC.SelectObject(pOldBit);
        MemBitmap.DeleteObject();
        MemDC.DeleteDC();
    }

    ReleaseDC(pDC);


在OnEraseBkgnd()中:
C/C++ code
if (erase)
    {
        return false;
    }
    else
    {
        CRect rcClient;
        GetClientRect(&rcClient);
        rcClient.bottom-=(TOOLBAR_HEIGHT);
        pDC->FillRect(&rcClient,&m_brBk);
        return TRUE;
    }



谢谢大家了~为什么画上去的会始终存在,拖动也不能擦除
 

作者: zwhz99   发布时间: 2011-06-16

补充说明一下OnEraseBkgnd()中的m_brBk是个白色的画刷

当我动态选择背景图之后HBITMAP m_hBmpTemp保存了选择的背景图,然后ExistBK=TRUE;

offsetx,offsety,m_size.cx,m_size.cy, sourcex, sourcey,都是跟滚动相关的

ptrArray保存了我画上去的所有图

作者: zwhz99   发布时间: 2011-06-16