Zu blöd für Bitmaps...
-
Hallo,
ich hatte eigentlich nur vor ein Bitmap aus einer Resource zu laden und das dann ins Fenster zu malen. Aber irgendwie passiert da nichts. Kein Fehler wird gemeldet, aber auch kein Bitmap gemalt. Kann mir jemand sagen wo der Fehler liegt?
HBITMAP hBitmap = LoadBitmap(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_BITMAP1)); if (hBitmap == NULL) { MessageBox(GetErrMess(GetLastError())); return; } CPaintDC pdc(this); BITMAP bm; // m_bmpBitmap ist vom Typ CBitmap m_bmpBitmap.Detach(); m_bmpBitmap.Attach(hBitmap); // Geladenes Bitmap holen m_bmpBitmap.GetBitmap(&bm); CDC dcMem; // Gerätekontext erzeugen, in den Bitmap geladen wird dcMem.CreateCompatibleDC(&pdc); // Bitmap in den kompatiblen Gerätekontext selektieren if (dcMem.SelectObject(m_bmpBitmap) == NULL) { MessageBox("Error SelectObject"); return; } CRect lRect; GetClientRect(lRect); lRect.NormalizeRect(); pdc.StretchBlt(10, 10, (lRect.Width() - 20), (lRect.Height() - 20), &dcMem, 0, 0, bm.bmWidth, bm.bmHeight, SRCCOPY);
-
Warum der Umweg über HBITMAP? Die CBitmap-Klasse hat eine Memberfunktion namens LoadBitmap. Speck dadurch den Code erstmal ein wenig ab. Wenn der Fehler noch immer auftritt meldest du dich nochmal
.EDIT: Bei Punkt 2 hab ich mich vertan...
-
Hallo,
über HBitmap bin ich gegangen weil ich mit LoadBitmap(...) ein Bild aus einer Dll laden wollte. Als das nicht geklappt hat hab ich zum Testen eine Ressource genommen. Wußte nicht wie ich das (aus Dll laden) mit CBitmap mache, bin noch nicht so lange dabei.
Das mit dem Blitten ist ein guter Tip. Was müßte ich denn ändern damit das Bild auf den Dialog-Hintergrund gezeichnet wird?Gruß,
Michel