双缓冲颜色丢失了。。。。。
MFC OnDraw(...)函数代码如下:
GetClientRect(&rc);
CPen RedPen_Solid,BluePen;
CDC dcMem; //用于缓冲作图的内存DC
CBitmap bmp;
dcMem.CreateCompatibleDC(pDC); //依附窗口DC创建兼容内存DC
bmp.CreateCompatibleBitmap(&dcMem,rc.Width(),rc.Height());//创建兼容位图
dcMem.SelectObject(&bmp);
RedPen_Solid.CreatePen(PS_SOLID,1,RGB(128,0,0));
dcMem.SelectObject(&RedPen_Solid);
dcMem.SelectObject(&RedPen_Solid);
dcMem.FillSolidRect(rc,RGB(255,255,255));
dcMem.MoveTo(0,redline1);
dcMem.LineTo(rc.Width(),redline1);//redline1&redline都为已知常数
dcMem.MoveTo(rc.Width()-redline_y,0);
dcMem.LineTo(rc.Width()-redline_y,rc.Height());
pDC->BitBlt(0,0,rc.Width(),rc.Height(),&dcMem,0,0,SRCCOPY);//将内存DC上的图象拷贝到前台
RedPen_Solid.DeleteObject();
dcMem.DeleteDC(); //删除DC
bmp.DeleteObject();
不用双缓冲的时候好好的。
怎么加了双缓冲最后显示图像成黑白的了。。。。。
求老师教我!