CBitmap problem

CodeFatal

Erfahrenes Mitglied
Moin moin,
ich seh vermutlich den Wald vor lauter Bäumen nicht.
Code:
//im Header
CBitmap *InMap;//NULL initialisiert

//in Cpp
funktion(){
.
.
.
GetClientRect(&rect);
	if(DrawFlag & BS_INBITMAP)//InMap nutzen
	{
		CDC dcIm;//Source Fläche - Daten wie im Image
		CBitmap *oldbmpIm;
		if(!InMap)
		{
			InMap = new CBitmap;
			if(!InMap)return;
			InMap->CreateCompatibleBitmap(&dc,rect.Width(),rect.Height());
				
			dcIm.CreateCompatibleDC(&dc);//fläche erstellen
			oldbmpIm = dcIm.SelectObject(InMap);//Bitmap auswählen
			dcIm.BitBlt(0,0,rect.Width(),rect.Height(),&dc,0,0,SRCCOPY);//Daten kopieren
			dcIm.SelectObject(oldbmpIm);
		}
		else
		{
			oldbmpIm = dcIm.SelectObject(InMap);//Bitmap auswählen
			dc.BitBlt(0,0,rect.Width(),rect.Height(),&dcIm,0,0,SRCCOPY);//Daten kopieren
			dcIm.SelectObject(oldbmpIm);
		}
.
.
.
}
Bei dem Code tritt ein Fehler auf, sobald ich das zweite mal in die Funktion laufe. Frage Warum und wie kann ich das beheben. ist die Bitmap nicht mehr gültig beim zweiten mal?

Will mit dem Schnipsel erreichen, das beim erstenmal der Grafik Hintergrund gespeichert wird und beim zweiten mal dieser verwendet.

Hoffe ihr könnt mir wieder helfen, da die elektornischen Helfer :google: und :google: keine Hilfe waren/sind.

Gruss Michael
 
Ist der gepostete Code vollständig? Du müssest die Zeile dcIm.CreateCompatibleDC(&dc); entweder auch im else-Zweig oder gleich außerhalb der if-Abfrage aufrufen.

Gruß
MCoder
 
AAAAAAAAAua!

Geh mich in die Ecke schämen...

So langsam versteh ich was die Boomtown Rats mit dem Song I don't like Mondays meinten...Einfach nicht mein Tag heute...

Danke
 
Zurück