*.bmp-Dateien mit dem DC ausgeben



  • Die Überschrift sagt eigentlich eh schon alles. Kann mir bitte jemand erkären, wie ich *.bmp-Dateien mit dem DC ausgeben kann? (Sofern das möglich ist. ^^")



  • Das _sollte_ gehen:

    CBitmap bitmap;
    CDC MemDC;
    bitmap.LoadBitmap(IDB_BITMAP);
    MemDC.CreateCompatibleDC(&bitmap);
    MemDC.SelectObject(&bitmap);
    
    pDC->StretchBlt(0,0, BitmapBreite, BitmapHöhe, &MemDC, X, Y, Rechts, Unten, SRCCOPY);
    

    pDC sollte ein gültiger Pointer sein, BitmapBreite, BitmapHöhe durch die entspr. Zahlen ersetzten. X und Y gibt die Position an, wo das Ding hinsoll, Rechts und Unten die Endposition... IDB_BITMAP sollte dann noch eine gültige Bitmap-Resource sein...



  • Wenn ich das alles mache, dann gibt das beim Kompilieren einen Fehler mit Verweis diese Zeile:

    MemDC.CreateCompatibleDC(&bitmap);
    

    Er kann CBitmap* nicht nach CDC* konvertieren. - He?



  • Hat sich schon ergeben. Hast du wahrscheinlich einen Fehler gemacht. Die gute alte MSDN. *rofl*

    Bei

    pHilfsDC->CreateCompatibleDC(&bitmap);
    

    gehört ja als Parameter der übergeordnete, oder richtige (Weiß ich ehrlichgesagt noch nicht so recht. ^^" Ist aber auch egal.) DC. Und da die Funktion das auch weiß reicht das:

    pHilfsDC->CreateCompatibleDC(NULL);
    

    Danke nochmal für die Hilfe!!! 🙂



  • Stimmt, mit CreateCompatibleDC lässt sich keine kompatible Bitmap erzeugen. Das wäre mit CreateCompatibleBitmap möglich. Ich weiß allerdings nicht, was Phobos nun verwenden wollte. (vermutlich CreateCompatibleDC)
    Ich weiß allerdings nicht auswendig, wie man jetzt eine Bitmap auf den DC zeichnet. Ich könnte dir nen Double-Buffering Code anbieten, aber das sprengt den Rahmen.. nur um eine Bitmap anzuzeigen.

    [url] http://www.gametutorials.com/Tutorials/win32/Win32_Pg3.htm [/url]

    Sieh dir auf der Seite mal das oberste Tutorial an. Wenn du wissen willst, wie man Double-Buffering im GDI macht, dann schau dir auch die restlichen Tutorials an.



  • Japp, sollte schon CreateCompatibleDC sein... und danke für den Link, kann ich auch gut gebrauchen 🙂


Anmelden zum Antworten