双缓冲怎么弄?我写了下面的测试代码,对不对呢?怎么没显示呢?
我不会的呀,大家帮帮我,谢谢了。void Ctest3View::OnDraw(CDC* /*pDC*/)
{        CDC m_dc;
pDC=GetDC();
m_dc.CreateCompatibleDC(pDC); 
for(int i=0;i<100;i++)
{
        LPCRECT lpcr;
lpcr=CRect(i*10,i*10,i*10+10,i*10+10);
CBrush cb(RGB(255,0,0));
m_dc->FillRect(lpcr,&cb);
     
}
pDC->BitBlt(0, 0, 1200,800, &m_dc,0, 0, SRCCOPY); 
ReleaseDC(pDC);   
}

解决方案 »

  1.   

    还要CreateCompatibleBitmap,SelectObject选中这个位图才行。最后SelectObject换回原来的位图,再DeleteObject。
      

  2.   


    void Ctest3View::OnDraw(CDC* /*pDC*/) 
    {         CDC m_dc; 
    pDC=GetDC(); 
    m_dc.CreateCompatibleDC(pDC); 
    CBitmap BmpMem; //内存位图   
    BmpMem.CreateCompatibleBitmap(pDC, 1024, 768);  //创建与显示设备兼容的位图
    m_dc.SelectObject(&BmpMem);  //将位图选入设备     
    for(int i=0;i <100;i++) 

            LPCRECT lpcr; 
    lpcr=CRect(i*10,i*10,i*10+10,i*10+10); 
    CBrush cb(RGB(255,0,0)); 
    m_dc->FillRect(lpcr,&cb); 
        

    pDC->BitBlt(0, 0, 1200,800, &m_dc,0, 0, SRCCOPY); 
    ReleaseDC(pDC);  
    }