在OnPaint里HBITMAP hbitmap=(HBITMAP)::LoadImage();我成功加载一副位图并建立兼容DC,填充整个窗口,在用settimer调用Invalidate();后 出现屏幕闪朔的很厉害,问一下 怎么用双缓冲的方法实现呢 让图像不再闪烁。由于我这个是HBITMAP的资源 是从外界加载的 所以不能直接建立兼容位图,需要CBitmap *bitmap=CBitmap::FromHandle(hbitmap);但是我调用bitmap->CreateCompatibleBitmap(pdc,width,height);就出错 还有 我这样memcdc.SelectObject(bitmap)用时 正确,只能
memcdc.SelectObject(hbitmap);大家帮我看看

解决方案 »

  1.   

    memcdc.SelectObject(bitmap)这样用时不正确,只能
    memcdc.SelectObject(hbitmap)把位图句柄选入设备
      

  2.   

    http://www.vckbase.com/document/viewdoc/?id=1612
      

  3.   

    我看了 可是我现在是HBITMAP 资源 
    创建位图:CreateCompatibleBitmap()m_Bmp.CreateCompatibleBitmap(&m_dcMemory, rt.Width(), rt.Height()); // CBitmap m_Bmp
    这里创建兼容位图后 我的图像 怎么放进去 我以下的用法对吗:
    HBITMAP hbitmap=(HBITMAP)::LoadImage();
    CBitmap *bitmap=CBitmap::FromHandle(hbitmap);
    bitmap->CreateCompatibleBitmap(pdc,width,height);
    memcdc.SelectObject(bitmap);
    这样写对吗