如何在两个内存 DC 之间拷贝图像?
麻烦帮忙看一下错在哪里,多谢! PAINTSTRUCT ps;
HDC hDC       = ::BeginPaint(m_hWnd, &ps); HDC hCanvasDC = ::CreateCompatibleDC(hDC);
SelectObject(hCanvasDC, m_hBitmap); // 位置被载入在 m_hBitmap HDC hBackDC   = ::CreateCompatibleDC(hDC);
HBITMAP hBackBitmap = ::CreateCompatibleBitmap(hBackDC, 1024, 768);
SelectObject(hBackDC, hBackBitmap); BitBlt(hBackDC, 0,0,1024,768, hCanvasDC, 0,0,SRCCOPY);
// *** 这一句没有工作,hCanvasDC 中的图像同有被复制到 hBackDC 中 Rectangle(hBackDC,0,0,x,y); BitBlt(hDC, 0,0,1024,768, hBackDC, 0,0,SRCCOPY); DeleteObject(hBackBitmap);
DeleteDC(hBackDC);
DeleteDC(hDC);
::EndPaint(m_hWnd, &ps);

解决方案 »

  1.   

    位图被载入在 m_hBitmap --- 上面打错字了:)
      

  2.   

    m_hBitmap也应该创建兼容位图m_hBitmap = ::CreateCompatibleBitmap(hCanvasDC, 1024, 768);
      

  3.   

    m_hBitmap是什么啊?m_hBitmap已经是有大小的位图了吗?
      

  4.   

    是的~~m_hBitmap 是在别的地方载入的有大小的位图:)
      

  5.   

    m_hBitmap是不是用CreateCompatibleBitmap创建的??
      

  6.   

    问题解决了,是 SelectObject 的问题!:感谢 xiaohyy 和 SlayerCarrier 两位帮忙:)
      

  7.   

    楼主具体是什么错啊 SelectObject怎么个错法?