Auswechseln von Bildern in einem Dialog, altes Bild wird zu Teilen noch angezeigt

gabifi

Mitglied
In einem Dialog habe ich folgendermaßen ein Bild gezeichnet, der Quellcode ist ein wenig zusammengefasst, nur das wichtigste:
Code:
CClientDC dc(this);
CDC m_dcMem.CreateCompatibleDC( &dc ) ;
CBitmap m_bmpDisplay.LoadBitmap( IDB_BILD );
m_dcMem.SelectObject( &m_bmpDisplay);

gezeichnet wird in OnPaint mit:
Code:
dc.BitBlt( m_pt.x, m_pt.y, m_size.cx, m_size.cy, &m_dcMem, 0, 0, SRCCOPY );

Nun möchte ich das Bild auswechseln. Nur habe ich das Problem, das das alte stehen bleibt und das neue drübergezeichnet wird, wenn das neue kleiner als das alte wird.

Kann ich sozusagen die Ausgabe erst säubern und dann neu zeichnen?
um die Änderung wirksam zu machen rufe ich Invalidate(FALSE) auf.

Danke für Antworten
Gabriel
 
Du kannst vor dem BitBlt einfach mit FillRect oder FillSolidRect da mit der angegebenen Farbe die Fläche füllen.
 
Bevor du das andere Bild anzeigst, lösche einfach das vorher angezeigte. Du kannst das so realisieren:

Code:
m_bmpDisplay.DeleteObject();
 
Zurück