Bitmap anzeigen



  • Hallo,

    Ich möchte beim Start meines Dialog-Programms für ca. 1 Sekunde ein Bitmap anzeigen, und zwar über allen anderen Elementen.

    Mit CBitmap und Show habe ich es schon versucht, doch entweder erscheint das Bitmap hinter den Elementen oder gar nicht. Das Bitmap dann wieder zu löschen scheint mir danach auch schwierig. 😞

    Hat jemand eine Idee?? Habe übrigens schon im Forum gesucht, doch das Thema Bild erzeugen und wieder löschen habe ich nirgends gefunden



  • Erzeugen

    CBitmap bitmap;
    CDC* pDC = GetDC();
    CDC dc;
    
    bitmap.LoadBitmap(IDB_DEIN_BITMAP);
    dc.CreateCompatibleDC(pDC);
    dc.SelectObject(bitmap);
    
    pDC->BitBlt(100, 100, 50, 50, &dc, 0, 0, SRCCOPY);
    

    Löschen kannst du mit DeleteObject() ...

    Gruß
    :: NoName ::



  • Löschen kannst du mit DeleteObject() ...

    Wie gesagt: Ich habe auch ein Problem mit dem Löschen des Bitmaps und ich habe inzwischen alle Formen von DeleteObject ausprobiert, ohne dass irgendeine funktioniert hätte.

    Wie muss ich das machen? Mit DeleteObject(bitmap) oder DeleteObject(dc)????



  • Teste beides. Theoretisch müsste es aber auch klappen wenn du den DC dynamisch anlegst und wieder löschst...

    Gruß
    :: NoName ::



  • Geht irgendwie nicht. Was heisst dynamisch?



  • Ich hab dir mal schnell Code geschrieben, der funktioniert...

    1. Variable privat/public anlegen
    CBitmap* bitmap;
    
    1. Code zum Zeichnen...
    bitmap = new CBitmap;
    	BITMAP bm;
    	CDC* pDC = GetDC();
    	CDC dc;
    
    	bitmap->LoadBitmap(IDB_BITMAP1);
    	bitmap->GetBitmap(&bm);    
    
    	dc.CreateCompatibleDC(pDC);
    	dc.SelectObject(bitmap);
    
    	pDC->BitBlt(0, 0, bm.bmWidth, bm.bmHeight, &dc, 0, 0, SRCCOPY);
    
    1. Code zum Löschen...
    delete bitmap;
    	Invalidate();
    

    Gruß
    :: NoName ::



  • Zeichne einen Dialog (so groß wie dein Bild sein soll).

    Zieh im Resourceneditor das Symbol für ein Bild auf deinen Dialog.

    Verbinde das Element mit einem Bild (ID des Bildes angeben).

    Und laß beim Start den Dialog mit dem Bild anzeigen.

    Zeig den Dialog aber nicht modal an. Dann kannst du mit hilfe der Timer den Dialog nach 1sec wieder verschwinden lassen.

    Mfg, Sigi


Anmelden zum Antworten