我想在DC上画3张bitmap,在显示的时候,把这个三张bitmap都作为一张bitmap帖在DC上去,怎么解决,能给出源代码
我在OnTimer事件中每100us就刷新一次,如果把这3张bitmap一张张的贴上去,每刷新一次,屏幕就抖动一次,所以如果把3张bitmap都作为一张bitmap帖上去,就可以解决刷新时屏幕抖动的问题了,或者还有其他解决屏幕抖动的问题吗?

解决方案 »

  1.   

    创建memory DC,
    在memory DC上把三张bitmap BitBlt上去
    然后BitBlt到系统DC
      

  2.   

    HDC hdc = ::GetDC(m_hWnd); // 如果你不知道用哪一个窗口,可以设为NULL
            HDC hdc1=::CreateCompatibleDC(hdc);
            HDC hdc2=::CreateCompatibleDC(hdc);
             HBITMAP bitmap;
    bitmap=(HBITMAP)LoadImage(AfxGetInstanceHandle(),filename,IMAGE_BITMAP,
                             100,100,                                    LR_LOADFROMFILE|LR_CREATEDIBSECTION);
    if(bitmap==NULL)
    {
    // 出错处理
    }
    ::SelectObject(hdc1,bitmap);
    ::BitBlt( hdc2 , 0 , 0 , 100 , 100 , hdc1 , 0 , 0 , SRCCOPY );
             //这时图像就放入了hcd2.
            
            ::DeleteDC(hdc1);
            ::DeltetDC(hdc2);
            ::ReleaseDC(hdc);