Bitblt的棘手问题!
我在OnDraw函数中定义一个内存DC:
CDC m_dcCompatible
m_dcCompatible.CreateCompatibleDC(pDC);
CRect rect;
GetClientRect(&rect);
CBrush *pBrush=CBrush::FromHandle((HBRUSH)GetStockObject(NULL_BRUSH));
CBitmap bitmap;
bitmap.CreateCompatibleBitmap(pDC,rect.Width(),rect.Height());
m_dcCompatible.SelectObject(&bitmap);
m_dcCompatible.BitBlt(0,0,2000,rect.Height(),pDC,0,0,SRCCOPY);
m_dcCompatible.SelectObject(pBrush);
在用内存DC画图后:
CPen tmppen(PS_SOLID, 3, RGB(255, 255, 255));
CPen* poldpen = m_dcCompatible.SelectObject(&tmppen);
m_dcCompatible.MoveTo(100,100);
m_dcCompatible.LineTo(20000, 500);
m_dcCompatible.SelectObject(poldpen);
在用Bitblt粘贴到窗口:
pDC->BitBlt(0,0,20000,rect.Height(),&m_dcCompatible,0,0,SRCCOPY);
但问题是我在内存做的长20000的直线在窗口只有其中的一段,当滑动条向右滑动时不能显示全部的图形?