Bitmap in Asseembler ausgeben



  • Hi,
    ich kriegs einfach nicht hin eine Bitmap als Hintergrundbild für mein Fenster auszugeben. Die Bitmap ist schon fertig und auch schon in einer Ressource Datei:

    IDB_LOGO	BITMAP 			Logo.bmp
    

    Aber wie kann ich die zeigen? Ich hab das schon so ne vermutung, dass das in die Windows Nachrichtenverarbeitung muss

    .if msg == WM_CREATE
            invoke LoadBitmap, hInstance, IDB_LOGO
            mov hBitmap, eax
        .endif
    

    Gezeigt werden müsste sie ja bei WM_PAINT, aber wie?
    Ich hoffe ihr könnt mir helfen, bin allerdings noch Anfänger, daher bitte nicht so kompliziertes



  • Du machst aus dem HBITMAP ein HBRUSH: http://msdn2.microsoft.com/en-us/library/ms532370(VS.85).aspx

    Dann setzt du den HBRUSH bei hbrBackground der WNDCLASS struktur ein, die du ja RegisterClass übergibst.

    mfg tobZel



  • Danke erstmal für deine Hilfe, aber irgendwie funktioniert das nicht. Im Fensterinhalt ist jetzt der Desktophintergrund.

    .if msg == WM_CREATE
            invoke LoadBitmap, hInstance, IDB_LOGO
            mov hBitmap, eax
            invoke CreatePatternBrush, hBitmap
            mov hBrush, eax
        .endif
    

    hBrush ist auch in der WINNCLASS. Ich habs auch so probiert:

    .if msg == WM_PAINT
            invoke CreatePatternBrush, hBitmap
            mov hBrush, eax
        .endif
    

    Da dacht ich mir aber schon das es nicht geht



  • ich hab herausgefunden, das LoadBitmap nicht erfolgreich ausgeführt wird (Rückgabewert = 0). Woran kann das liegen?



  • invoke GetLastError
    

    EAX enthält dann den Fehlercode (falls NT/2000/XP).



  • Ok, Problem gelöst. Danke


Anmelden zum Antworten