Es erscheint immer noch kein Bild T.T
-
Ich habe folgenden Code in einer Fensteranwendung:
//////////////////////////////////////////////////////////////////
hdc = GetDC(hwnd);
hdc2=CreateCompatibleDC(NULL);bmp = (HBITMAP)LoadImage(hI, "C:\\Eigene Dateien\\Eigene Bilder\\k.bmp", IMAGE_BITMAP,0,0, LR_DEFAULTSIZE);
SelectObject(hdc2,bmp);
BitBlt(hdc,0,0,100,100,hdc2,0,0,SRCCOPY);
///////////////////////////////////////////////////////////////////////
Damit möchte ich das Bild im Fenster anzeigen lassen. Um Fragen vorzubeugen:
hwnd ist die HWND vom Fenster, hI ist die HINSTANCE vom WinMain(HINSTANCE,...) Aufruf
Leider sehe ich nur Schwarz.(Die BK Color vom Fenster)
Es erscheint kein Bild.
Kann mir einer sagen wieso?
-
Ist bmp gültig?
Normalerweise lädt man Bilder von Festplatte so:
bmp = (HBITMAP)LoadImage(NULL, "C:\\Eigene Dateien\\Eigene Bilder\\k.bmp", IMAGE_BITMAP,0,0, LR_LOADFROMFILE);
-
Ich werde es mal mit LR_LOADFROMFILE testen. Ich hätte gedacht dass das Flag egal ist weil man ja sowieso LoadImage macht.
-
The_incredible_Guest schrieb:
Ich werde es mal mit LR_LOADFROMFILE testen. Ich hätte gedacht dass das Flag egal ist weil man ja sowieso LoadImage macht.
Hä?
...und Du willst wirklich kein WinAPI-Tutorial zumindest mal ansehen?
-
Ich habe das Problem gelöst:
Um etwas auf den Bildschirm zu bringen muss die Nachricht WM_PAINT abgeschickt werden. Ich habe meinen Code jedoch im glauben dass das Fenster immer aktuell ist in WinMain geschrieben.(typischer Anfängerfehler würde ich meinen)
Ich habe es bemerkt als ich wie gewohnt TextOut aufgerufen habe aber kein Text erschien. Sofort leuchtete mir ein: Ohne WM_PAINT Nachricht kein Bild.(Schließlich muss das Fenster ja neu gezeichnet werden)
-
mich wuerde interessieren wie du das ganze jetzt geloest hast, koenntest du den ganzen quelltext mal posten??!!