关于双缓冲无法显示图片的有关问题

关于双缓冲无法显示图片的问题
首先加载一张图片

Gdiplus::Bitmap * IMG = new Gdiplus::Bitmap(_T("C:/1.jpg"));

然后在OnPaint()事件中利用双缓冲绘制出来

CDC * FrontDC = GetDC();  // 前台缓冲区
CDC BackDC;    // 后台缓冲区
BackDC.CreateCompatibleDC(NULL);    // 建立后台缓冲区
Gdiplus::Graphics * g = Gdiplus::Graphics::FromHDC(BackDC.GetSafeHdc()); // 关联到后台缓冲区
g->DrawImage(IMG, 0, 0, 400, 400);    // 绘制到后台缓冲区

FrontDC->BitBlt(0, 0, 400, 400, &BackDC, 0, 0, SRCCOPY);  // 绘制到前台缓冲区

BackDC.DeleteDC();

但是图片并没有显示出来
但是如果我不用双缓冲,直接绘制出来就可以

CDC * FrontDC = GetDC();
Gdiplus::Graphics * g = Gdiplus::Graphics::FromHDC(FrontDC->GetSafeHdc());
g->DrawImage(IMG, 0, 0, 400, 400);    // 直接绘制

后台缓冲区复制不到前台缓冲区,还是不能直接用DrawImage()函数绘制到后台缓冲区?

------解决方案--------------------
后台缓冲DC你没有给他关联CBitmap
它画在鸟地方啊

DC只是一支笔,CBitmap才是黑板
只有笔画个鸡巴画
------解决方案--------------------
BackDC.CreateCompatibleDC(NULL);    
还的创建一个兼容位图(指定大小)
还得将兼容位图选入BackDC
------解决方案--------------------
在定义一个CBitmap给后台缓冲区,
给后台缓冲区创建兼容位图即:CreateCompatibleDC
给后台缓冲去选入位图,即: SelectObject