Bitmap
-
ich habe noch ein problem, folgender codeausschnitt:
static HANDLE hBitmap
hBitmap = (HBITMAP)LoadImage(NULL,"test.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
switch(message)
{
case WM_PAINT:
{
PAINTSTRUCT ps;
HDC hDC;hDC = BeginPaint(hWnd, &ps);
{HDC BhDC = CreateCompatibleDC(hDC);
SelectObject(BhDC,hBitmap);
BitBlt(hDC,0,0,640,480,BhDC,0,0,SRCCOPY);
}
EndPaint(hWnd, &ps);
return 0;
}immer wenn ich das fenster minimiere und wieder herstelle ist die bitmap weg, was mache ich falsch?? das gleiche passiert auch wenn irgendein fenster die bitmap verdeckt und wieder freigiebt???
-
Gieb das Objekt wieder frei!
-
Naja, das Object (Bitmap) braucht er ja noch.
Aber es bleibt in BhDC "gefangen", da es immer nur in einen Gerätekontext gleichzeitig gesetzt werden kann.
Ein DeleteDC(BhDC); vor return 0; sollte das Problem beheben oder du machst BhDC auch static und initialisierst es schon in WM_CREATE.
-
jo, thx