Скопируйте содержимое CView в растровое изображение - PullRequest
0 голосов
/ 16 октября 2011

Я хотел бы создать растровую копию текущего содержимого моего CView, которое может быть или не быть в настоящее время видимым на экране. Вот код, который я добавил к моей функции OnDraw:

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 бит. Я уверен, что что-то упустил, кто-нибудь может помочь?

Спасибо, Kevin

1 Ответ

1 голос
/ 18 октября 2011

Проблема заключалась в том, что & dc нужно было изменить на pDC при вызове CreateCompatibleBitmap.

Kevin

...