我想创建一个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位。我确定我错过了什么,有人可以帮忙吗?
谢谢, 凯文
答案 0 :(得分:1)
问题是在调用CreateCompatibleBitmap时需要将& dc更改为pDC。
凯文