请问:滚动滚动条后,新滚动出来的图片区域为什么是花的?内有代码。

请教:滚动滚动条后,新滚动出来的图片区域为什么是花的?内有代码。急急急!
当滚动滚动条的时候,新滚动出来的区域怎么是花的,麻烦大家给看看
void   CImageView::OnDraw(CDC*   pDC)
{
CSuperImageDoc   *pDoc=(CSuperImageDoc*)GetDocument();
CSuperImageView*   pView   =   (CSuperImageView*)GetParent();
CMainFrame   *pFrame=(CMainFrame*)(AfxGetApp()-> m_pMainWnd);  
//   TODO:   add   draw   code   here
if(   !m_pPreviewBits   )
{
return;
}

CRect         rect;
                  CBitmap     bmp;
CDC             memDC;
HDRAWDIB   hDrawdib;
CBrush       brush(   RGB(   255,   255,   255   )   );  

GetClientRect(rect);
memDC.CreateCompatibleDC(   pDC   );
bmp.CreateCompatibleBitmap(   pDC,   rect.Width(),   rect.Height()   );
memDC.SelectObject(   &bmp   );
        memDC.FillRect(   CRect(   0,   0,   rect.Width(),   rect.Height()   ),   &brush   );

int   width   =   m_bitmapInfoHeader.biWidth; //   图像中要显示区域的高度和宽度
int   height   =   m_bitmapInfoHeader.biHeight;

int   w   =   int   (   width   *   m_fImageZoom   );//乘以放大倍数
int   h   =   int(   height   *   m_fImageZoom   );

//   added   by   ZB,动态设置滚动条
SIZE   szTotal;
szTotal.cx=w;
szTotal.cy=h;
SetScrollSizes(MM_TEXT,szTotal);  
//pDoc-> UpdateAllViews(this);
CPoint   cpScrollPos=GetScrollPosition();  
.....................................................
.....................................................
                  DrawDibBegin(   hDrawdib,   memDC.m_hDC,   rect.Width(),   rect.Height(),  
(   BITMAPINFOHEADER*   )m_pBitmapInfo,rect.Width(),   rect.Height(),DDF_SAME_DIB   );
DrawDibDraw(   hDrawdib,   memDC.m_hDC,   0   ,   0   ,   w,   h,   (   BITMAPINFOHEADER*   )m_pBitmapInfo,  
m_pPreviewBits,m_ptImageStartPos.x,m_ptImageStartPos.y,   width,   height,   DDF_SAME_DIB   );

if   (m_nToolType==TOOL_MAGNIFIER)  
{
int   nWidth=MAGNIFIER_WIDTH/2;
int   nNewWidth=(int)(nWidth*m_fMagnifierZoon+0.5);
memDC.StretchBlt(m_ptEnd.x-nNewWidth,m_ptEnd.y-nNewWidth,nNewWidth*2,nNewWidth*2,&memDC,
m_ptEnd.x-nWidth,m_ptEnd.y-nWidth,MAGNIFIER_WIDTH,MAGNIFIER_WIDTH,SRCCOPY);
}

DrawDibClose(   hDrawdib   );
..................................................................
..................................................................
pDC-> BitBlt(   0,   0,   rect.Width(),   rect.Height(),   &memDC,   0,   0,   SRCCOPY   );

}

------解决方案--------------------
给你个参考,我的程序没那问题

void CDrawShapeView::OnDraw(CDC* pDC)
{
CDrawShapeDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
CSize sz;
sz = GetTotalSize();
// TODO: add draw code for native data here
CDC MemDC; //定义一个显示设备对象
CBitmap MemBitmap;//定义一个位图对象
//建立与屏幕显示兼容的内存显示设备
MemDC.CreateCompatibleDC(NULL);
//建立一个与屏幕显示兼容的位图,位图的大小用窗口的大小
MemBitmap.CreateCompatibleBitmap(pDC,sz.cx,sz.cy);