2011-10-15 4 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

이 문제는 필요한 & 직류 CreateCompatibleBitmap에 대한 호출에서 PDC로 변경하는 것이 었습니다.

케빈