在ondraw函数中,我使用了双缓存,代码是这样的:
CDC dc;
CBitmap bmp;
bmp.CreateCompatibleBitmap (pDC,100,100);
dc.CreateCompatibleDC (pDC);
dc.SelectObject (&bmp);
CBrush brush(RGB(255,255,255));
dc.FillRect(CRect(0,0,100,(100),&brush);
CPen pen,*oldpen;
pen.CreatePen (PS_SOLID ,1,RGB(255,0,0));
oldpen=pDC->SelectObject (&pen);
dc.MoveTo (2,50);
dc.LineTo (100,50);
...............
pDC->BitBlt (0,0,100,100,&dc,0,0,SRCCOPY);
本来我希望画出来的线是红颜色的,但是为什么却是黑颜色的?????
为什么??
CDC dc;
CBitmap bmp;
bmp.CreateCompatibleBitmap (pDC,100,100);
dc.CreateCompatibleDC (pDC);
dc.SelectObject (&bmp);
CBrush brush(RGB(255,255,255));
dc.FillRect(CRect(0,0,100,(100),&brush);
CPen pen,*oldpen;
pen.CreatePen (PS_SOLID ,1,RGB(255,0,0));
oldpen=pDC->SelectObject (&pen);
dc.MoveTo (2,50);
dc.LineTo (100,50);
...............
pDC->BitBlt (0,0,100,100,&dc,0,0,SRCCOPY);
本来我希望画出来的线是红颜色的,但是为什么却是黑颜色的?????
为什么??
CBrush brush(RGB(255,255,255));
dc.FillRect(CRect(0,0,100,(100),&brush);
和memDC.FillSolidRect(0,0,rcClient.Width(),rcClient.Height(),RGB(255,255,255));是一样的啊
我也试了,结果还是黑色的!
CBitmap bmp;
bmp.CreateCompatibleBitmap (pDC,100,100);
dc.CreateCompatibleDC (pDC);
dc.SelectObject (&bmp);
CBrush brush(RGB(255,255,255));
dc.FillRect(CRect(0,0,100,100),&brush); // bracks not match in your code
CPen pen,*oldpen;
pen.CreatePen (PS_SOLID , 1,RGB(255,0,0));
oldpen=dc.SelectObject (&pen); // HERE IS THE PROBLEM
dc.MoveTo (2,50);
dc.LineTo (100,50);
dc.SelectObject(oldpen); // better to add this statement