0

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ビットしかないことがわかります。私は何かが足りないと確信しています、誰か助けてもらえますか?

ありがとう、ケビン

4

1 に答える 1

1

問題は、CreateCompatibleBitmap の呼び出しで &dc を pDC に変更する必要があることでした。

ケビン

于 2011-10-18T16:08:02.183 に答える