Bild aus Ressourcen laden/darstellen
-
Hi, und zwar mit:
case WM_PAINT: { HANDLE hbitmap = (HBITMAP)LoadImage(NULL,"bild.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE); HDC hdc = GetWindowDC(hWnd); HDC hdc_ram = CreateCompatibleDC(NULL); SelectObject(hdc_ram, hbitmap); BitBlt(hdc,0,0,398,234,hdc_ram,0,0,SRCCOPY); break; }kann ich ein Bild aus einer Datei laden und darstellen, nun möcht' ich aber keine extra Dateien bei dem Programm haben, sondern Das Bild aus den Ressourcen laden und darstellen.
Mit
case WM_PAINT: { HANDLE hbitmap = (HBITMAP)LoadImage(NULL,MAKEINTRESOURCE(ID_BITMAP_01),IMAGE_BITMAP,0,0,LR_SHARED); HDC hdc = GetWindowDC(hWnd); HDC hdc_ram = CreateCompatibleDC(NULL); SelectObject(hdc_ram, hbitmap); BitBlt(hdc,0,0,398,234,hdc_ram,0,0,SRCCOPY); break; }res.h
#define ID_BITMAP_01 1res.rc
#include "res.h" ID_BITMAP_01 BITMAP "nfs_mw.bmp"bekomme ich das Bild nicht zu sehen

Ich hoff mir kann jemand sagen wie ich es richtig machen kann,
Danke
mfg Dr!v3r
-
sorry, hab was vergessen -.-
HANDLE hbitmap = (HBITMAP)LoadImage(GetModuleHandle(NULL),MAKEINTRESOURCE(ID_BITMAP_01),IMAGE_BITMAP,0,0,LR_SHARED);
muss es natürlich heissen.
mfg
-
wie wäre es so
[cpp] case WM_PAINT: { PAINTSTRUCT ps; HBITMAP hBitMap = (HBITMAP)LoadImage(hInst,MAKEINTRESOURCE(ID_BITMAP_01),IMAGE_BITMAP, 0, 0, LR_SHARED); HDC hdc = BeginPaint(hwnd, &ps); HDC hdc_ram = CreateCompatibleDC (hdc) ; SelectObject (hdc_ram, hBitMap) ; BitBlt (hdc, 0, 0, 398, 234, hdc_ram, 0, 0, SRCCOPY); DeleteDC (hdc_ram) ; DeleteDC (hdc) ; EndPaint(hwnd, &ps); } [/cpp]Habs zwar nich getestet müsste aber gehen

MFG Ascharan
-
Da muss aber noch 'hBitMap' freigegeben werden und das Inhalt, modifiziert durch SelectObject, muss wiederhergestellt werden, siehe MSDN zu SelectObject.