CRect rcWin;
GetWindowRect(&rcWin);
CDC dc;
HDC hdc = GetWindowDC(m_hWnd);
dc.Attach(hdc);
CDC memDC;
memDC.CreateCompatible(&dc); //创建一个与指定设备兼容的内存设备上下文环境
//下面建立一个与屏幕显示兼容的位图,至于位图的大小嘛,可以用窗口的大小,也可以自己定义(如:有滚动条时就要大于当前窗//口的大小,在BitBlt时决定拷贝内存的哪部分到屏幕上
CBitmap bmp;
bmp.CreateCompatibleBitmap(%dc,rcWin.Width(),rcWin.Height());
memDC.SelectObject(&bmp);
memDC.SetBkMode(TRANSPARENT);
//利用Gdiplus 在memory DC上重绘
Gdiplus::Graphics graphics(MemDC.GetSafeHdc());
graphics.DrawImage(m_pBkImage,rcWin,0,0,m_nFrameWidth,m_nFrameWidth,UnitPixel);
//在memory dc重绘完成后 拷贝回源dc
dc.BitBlt(0,0,rcWindow.Width(),rcWindow.Height(),&MemDC,0,0,SRCCOPY);
dc.SelectClipRgn(NULL);//清除
dc.Detach();
ReleaseDC(m_hWnd,hdc);