HDC einer Bitmap
-
Ganz kurz:
Wie kriege ich die HDC einer Bitmap Datei?
-
Wie kriege ich die HDC einer Bitmap Datei?
Hä?
Die Frage ist im MFC Forum wohl besser aufgehoben, falls du Device Context meinst. Deine Angabe ist aber etwas dürftig. Ich kann mir darunter leider nichts vorstellen. Was genau möchtest du machen?
MfG
-
Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Ich weiß selber nicht was ich mir darunter vorstellen soll :<
Ich habe eine Frage gepostet wie ich eine BMP auf den Bildschirm kriege und dann die Antwort gekriegt dass ich dazu BitBlt und die HDC des Bildes sowie die des Fensters zu nehmen.
-
Mein bisheriger Anlaufversuch(ohne Erfolg):
HDC hdc;
HDC hdc2;
hdc = GetDC(hwnd);// hwnd vom Fensterhdc2 = (HDC)LoadImage(hI, "Hier habe ich den Pfad eingegeben", IMAGE_BITMAP,0,0, LR_DEFAULTSIZE);
try
{
BitBlt(hdc2, 200,200,200,200, hdc,200,200,DSTINVERT);
}
catch(...)
{
MessageBox(hwnd, "error", "error", MB_OK);
}
-
Ich kann dir erst morgen früh genau sagen wie's geht. Ich weiss es nicht auswendig. Folgender Link dürfte dir weiterhelfen:
http://www.c-plusplus.net/forum/viewtopic.php?t=79655&start=0Aber es gibt genug andere User, die sich mit diesem Thema beschäftigt haben..
Ich nehme an du benutzt VC++ und möchtest mit MFC ein Bitmap anzeigen, oder?MfG
-
HDC hdc; HDC hdc2; HBITMAP bmp; hdc = GetDC(hwnd);// DC des Fensters hdc2=CreateCompatibleDC(NULL); // Ein DC mit denselben Eigenschaften wie der DC des Desktops // Bitmap laden: bmp = (HBITMAP)LoadImage(hI, "Hier habe ich den Pfad eingegeben", IMAGE_BITMAP,0,0, LR_DEFAULTSIZE); // Bitmap mit temporärem hdc2 verbinden: SelectObject(hdc2,bmp); // hdc2 (verbunden mit dem bild) in den DC des Fensters kopieren: BitBlt(hdc,0,0,breite,hoehe,hdc2,0,0,SRCCOPY);...hier fehlen noch Aufräumarbeiten und Rückgabewertprüfung...
-
tnx
Obs klappt habe ich noch nicht probiert ansonsten poste ich nochmal.
-
Irgendwie klappt es immernoch nicht. Klappt es denn bei jemand anderem?
Vielleicht liegt es dann ja auch an meiner Bitmap...
-
Hast Du mal die Rückgabewerte geprüft ? - Ob der die Bitmap z.B. überhaupt geladen hat ?
-
Wenn man eine Datei des Typs HBITMAP anzeigen kann werde ich es Testen. Ich bin in WINAPI Programmierung noch Anfänger und weiß nicht viel über den Typ HANDLE.
-
The_incredible_Guest schrieb:
Wenn man eine Datei des Typs HBITMAP anzeigen kann werde ich es Testen.
Ich meinte natürlich Variable und nicht Datei
-
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)