SelectObject,将一个DC关联到BMP上,如果DC是窗口DC,就直接显示了,若不是则用blt将其画到窗体上。

解决方案 »

  1.   

    如果要使用内存DC呢? 怎么做?
    我建了一个内存DC, 然后(SelectObject)把bmp选进内存DC, 然后在内存DC上绘图, 然后我刷新bmp但是bmp上什么也没有,画不上去!!??
      

  2.   

    不会要刷新吧?
    dc同bmp关联后,就是在给bmp画图嘛!
    如果窗体dc不是你关联的dc,用bitblt,strechblt都可以画的。
    如果你要保存 bmp,又是另一回事了。
      

  3.   

    哈, 搞定了! 居然没有对m_pBitmap 给值 ...  真是粗心...呵呵
      

  4.   

              CRect rect;
    GetClientRect(&rect);
    CBitmap bitmap;
    CClientDC dc(this);
    OnPrepareDC(&dc);
    CDC m_dc;
    m_dc.CreateCompatibleDC(&dc);
            bitmap.CreateCompatibleBitmap(&dc,rect.Width(),rect.Height());
    CBitmap *oldbitmap=m_dc.SelectObject(&bitmap);
    m_dc.BitBlt(0,0,rect.Width(),rect.Height(),&dc,0,0,SRCCOPY);
    m_dc.SelectObject(oldbitmap);