GDI+双缓冲的有关问题. 怎么将一个JPG图片作为视图的背景

GDI+双缓冲的问题. 如何将一个JPG图片作为视图的背景
我是想将一个JPG图片作为视图的背景.考虑到GDI+对JPG文件支持要比GDI好一些.所以选用了GDI+.但问题是当窗口第一次显示的时候,背景图画上去了.但是将这个窗口最大化之后背景图没有画上去.
请教各位,是不是我这个双缓冲哪里写得不对.
我用GDI画一个BMP文件作为背景是成功的.困扰几天的问题了,高手帮忙看一下.谢谢

BOOL   CLotteryView::OnEraseBkgnd(CDC*   pDC)  
{


CRect   rectClient;      
        GetClientRect(rectClient);  
CDC   MemDC;
MemDC.CreateCompatibleDC   (NULL);

Bitmap   MemBitmap(rectClient.Width(),rectClient.Height());
Graphics   memGph(&MemBitmap);
                  //pImage在构造函数中已经加载了一个图片
memGph.DrawImage(pImage,rectClient.left,   rectClient.top,rectClient.Width(),rectClient.Height());

Graphics   graphics(pDC-> m_hDC);
graphics.DrawImage(&MemBitmap,rectClient.left,   rectClient.top,rectClient.Width(),rectClient.Height());
        //pDC-> BitBlt(0,0,rectClient.Width(),rectClient.Height(),MemBitmap,0,0,SRCCOPY);
MemDC.DeleteDC();

            return   TRUE;
}

------解决方案--------------------
把你的OEraseBkgnd(CDC* pDC)
返回为true,我项目中的
BOOL CIDPhotoView::OnEraseBkgnd(CDC* pDC)
{
return TRUE;
}
然后在OnDraw(CDC* pDC)去画吧!
void CIDPhotoView::OnDraw(CDC* pDC)
{
if(pOriginal)
{

Graphics g(pDC-> GetSafeHdc());
g.SetInterpolationMode(InterpolationModeHighQualityBicubic); //设置图像质量

CRect rcImage(CPoint(0, 0), CSize(pDisplay-> GetWidth(),pDisplay-> GetHeight()));
CSize szOffset = GetPageSize().CenterPoint() - rcImage.CenterPoint();
rectDisplay.X = szOffset.cx;
rectDisplay.Y = szOffset.cy;
rectDisplay.Width = pDisplay-> GetWidth();
rectDisplay.Height = pDisplay-> GetHeight();

DrawBackground(pDC,rectDisplay);
DrawBorder(pDC,rectDisplay); //画边框

g.DrawImage(pDisplay,rectDisplay); //画相片

//显示裁剪框
if(m_bIsTracker)
m_Tracker.Draw(pDC);

}
else
{
CGdiObject * pOldFont = pDC-> SelectStockObject(DEFAULT_GUI_FONT);

CRect rcClient;
GetClientRect(rcClient);
pDC-> FillSolidRect(rcClient, RGB(125,125,125)); //画背景色

CString s = "当前程序中没有相片!\nWWW.A708.COM ";
CPoint center = rcClient.CenterPoint();

// 高亮度显示字符
int bgLum = 31 * GetRValue(RGB(125,125,125))
+ 61 * GetGValue(RGB(125,125,125))
+ 8 * GetBValue(RGB(125,125,125));

COLORREF colPen = bgLum > (60 * 255) ? RGB(0, 0, 0) : RGB(255, 255, 255);

COLORREF colOld = pDC-> SetTextColor(colPen);
pDC-> SetBkMode(TRANSPARENT);
pDC-> SetTextAlign(TA_CENTER | TA_BASELINE);
pDC-> TextOut(center.x, center.y, s);
pDC-> SetTextColor(colOld);

if (pOldFont) pDC-> SelectObject(pOldFont);//写字
}
}
------解决方案--------------------
1) Add more error checking code.
2) Debug your code.