2011-10-15 1 views
0

Je voudrais créer une copie bitmap du contenu actuel de mon CView, qui peut être visible ou non sur l'écran. Voici le code que je l'ai ajouté à ma fonction OnDraw:Copier le contenu de CView dans un bitmap

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); 

} 

Mais maintenant, quand je l'examinerai bitmap je vois qu'il n'y a que 1 bit par pixel. Je suis sûr qu'il me manque quelque chose, quelqu'un peut-il m'aider?

Merci, Kevin

Répondre

1

Le problème était que & dc devait être changé pour pDC dans l'appel à CreateCompatibleBitmap.

Kevin

Questions connexes