CDC MemDC; //首先定义一个显示设备对象,所有的绘制首先绘制到这块内存中
CBitmap MemBitmap; //定义一个位图对象
//随后建立与屏幕显示兼容的内存显示设备
MemDC.CreateCompatibleDC(NULL);
MemDC.SetStretchBltMode(HALFTONE);
//这时还不能绘图,因为没有地方画
//下面建立一个与屏幕显示兼容的位图,至于位图的大小嘛,可以用窗口的大小
MemBitmap.CreateCompatibleBitmap(&dc /*是dc这个参数,而不是MemDC*/,rectCanvas.Width(),rectCanvas.Height());
//将位图选入到内存显示设备中
//只有选入了位图的内存显示设备才有地方绘图,画到指定的位图上
CBitmap *pOldBit=MemDC.SelectObject(&MemBitmap);
//这一句只是为了填充一个背景,
MemDC.FillSolidRect(rectCanvas.left,rectCanvas.top,rectCanvas.Width(),rectCanvas.Height(),GetBackgroundColor());
//在MemDC上进行操作,绘制你想要绘制的东西
//...
//将MemDC的图拷贝到屏幕(dc)上进行显示
dc.BitBlt(rectCanvas.left,rectCanvas.top,rectCanvas.Width(), rectCanvas.Height(),&MemDC,0,0,SRCCOPY);
//绘图完成后的清理
MemBitmap.DeleteObject();
MemDC.DeleteDC();