2011-10-15 54 views
0

我想創建CView當前內容的位圖副本,該副本當前可能在屏幕上可見,也可能不在屏幕上。下面是我添加到我的OnDraw函數代碼:將CView內容複製到位圖

void 
MyView::OnDraw 
( 
    CDC* pDC 
) 
{ 

    ... normal processing ... 

    // Copy the view contents to a bitmap. 

    CDC dc; 
    dc.CreateCompatibleDC(pDC); 

    if (m_pBitmap != NULL) 
    { 
     delete m_pBitmap; 
    } 

    m_pBitmap = new CBitmap(); 
    m_pBitmap->CreateCompatibleBitmap(&dc, szView.cx, szView.cy); 

    CBitmap* pOld = (CBitmap*)dc.SelectObject(m_pBitmap); 
    dc.BitBlt(0, 0, szView.cx, szView.cy, pDC, 0, 0, SRCCOPY); 
    dc.SelectObject(pOld); 

} 

但現在當我檢查我的位圖可以看到有每個像素只1位。我確定我錯過了一些東西,任何人都可以幫忙嗎?

感謝, 凱文

回答

1

的問題是,需要& DC在調用CreateCompatibleBitmap改變爲PDC。

Kevin