这是一段代码,不过需要修改一下,不将位图对象做为局部变量
void CCsdn_sdiView::OnDraw(CDC* pDC)
{
CCsdn_sdiDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc); DWORD time1=GetTickCount();

//*写内存DC,此段代码与直接写DC取其一
CDC memDC;
CRect rc;
GetClientRect( &rc );

memDC.CreateCompatibleDC( pDC );
CBitmap m_ClientBmp;
m_ClientBmp.CreateCompatibleBitmap( pDC, rc.Width(), rc.Height() );

CBitmap *pOldBmp = memDC.SelectObject( &m_ClientBmp ); //在内存DC上处理 
memDC.PatBlt( 0, 0, rc.Width(), rc.Height(), PATCOPY );

//可以在此处添加向内存窗口上画矢量线的代码
for(int x=0;x<rc.Width();x++)
for( int y=0;y<rc.Height();y++)
{
memDC.SetPixelV( x, y, RGB( rand()%256, rand()%256, rand()%256 ) );
}

//复制内存DC上已做好内容到屏幕上
pDC->BitBlt( 0, 0, rc.Width(), rc.Height(),
&memDC, 0, 0, SRCCOPY ); memDC.SelectObject( pOldBmp );