创建一个对话框应用程序A,我把一张图片做为背景色贴满整个对话框(用双缓冲);但是当我把其他窗口移到该对话框上面时,然后移开,此时对话框上会先出现对话框原本的背景色,然后才是我贴上去的背景色,这是为什么呢??能不能让对话框原本的背景色不出现呢??谢谢!
这是我写在onpaint里面的代码,并且OnEraseBkgnd返回TRUE
CDC memDC;
CDC swapDC;
CRect rect;
CBitmap memBitmap;GetClientRect(&rect);BOOL bIsCreateDCSucc     = memDC.CreateCompatibleDC(&dc);
BOOL bIsCreateSucc       = swapDC.CreateCompatibleDC(&dc);
BOOL bIsCreateBitmapSucc = memBitmap.CreateCompatibleBitmap
     (&dc,rect.Width(),rect.Height());if(!bIsCreateDCSucc || !bIsCreateBitmapSucc)
   return;
CBitmap *pOldmemBitmap     = memDC.SelectObject(&memBitmap);
CBitmap *pOldtitlebitmap   = swapDC.SelectObject(&m_bitmap);
//m_bitmap是指背景图片
//m_BITMAP是背景图片的大小
for(int i = 0;i < rect.bottom; i += m_BITMAP.bmHeight)
{
   for(int j = 0; j < rect.right; j += m_BITMAP.bmWidth)
  {            
    memDC.BitBlt(j,i,m_BITMAP.bmWidth,m_BITMAP.bmHeight,
      &swapDC,0,0,SRCCOPY);
  }
}
dc.BitBlt(0,0,rect.Width(),rect.Height(),&memDC,0,0,SRCCOPY);
memDC.SelectObject(pOldmemBitmap);
swapDC.SelectObject(pOldtitlebitmap);
memBitmap.DeleteObject();swapDC.DeleteDC();
memDC.DeleteDC();