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