我在一个窗口中用CClientDC类画了一个图,但是我将窗口最小话后再还原图就不见了,我试过再OnDraw()函数中重画该图,实在太慢。我听说可以将屏幕上的图快速拷进内存位图,然后再OnDraw()函数中再把这个位图快速复制到屏幕。不知如何实现,各位高手快救小弟一命

解决方案 »

  1.   

    BitBlt我也试过,但是弄不出来,麻烦高手说个明白
      

  2.   

    是因为有闪烁吧?
    成员变量:
    CDC m_DC;
    CBitmap m_Bitmap;构照函数
    {
    m_DC.CreateCompatableDC(clientDC);
    m_Bitmap.CreateCompatbaleBitmap(clientDC,800,600);
    m_DC.SelectObject(&m_Bitmap);
    }
    OnDraw(CDC* pDC)
    {
    DrawYours(&m_DC);
    Bitblt(pDC,0,0,800,600,&m_DC,0,0,SRCCPY);
    }析构
    {
    m_Bitmap.DeleteObject();
    m_DC.DeleteDC();
    }
      

  3.   

    双缓冲就是2个DC啊,用过都不知道我用3个DC哪,
    pDC = GetDC()
    memDC.CreateCompatibleDC(pDC)要改什么就往memDC上写还有一个OrignalDC是原始图片,画到memDC上的
    以后想清干净memDC就memDC.bitblt(,,OrignalDC)就好了