"Czarna mapa bitowa"
Ostatnio zmodyfikowano 2015-12-12 09:03
Pawlo3 Temat założony przez niniejszego użytkownika |
"Czarna mapa bitowa" » 2015-11-28 14:21:38 Robiłem podobiznę Monopoly. Gracze przesuwali się, wszystko grało, ale nagle po kilku okrążeniach planszy mapy bitowe pól i pionków (były w 2D) zrobiły się czarne. Przyciski się nie wciskały, ale przycisk "Zamknij" zadziałał (choć nie było podświetlenia). Może mi ktoś pomóc (oto kod funkcji DrawBitmap() napisanej przeze mnie): BOOL DrawBitmap( HDC dcWnd, HBITMAP hMask, HBITMAP hBmp, int x, int y, int cx, int cy ) { if( !dcWnd ) return FALSE; if( !hMask || !hBmp ) return FALSE; HDC dcMem = CreateCompatibleDC( dcWnd ); SelectObject( dcMem, hMask ); if( !BitBlt( dcWnd, x, y, cx, cy, dcMem, 0, 0, SRCAND ) ) return FALSE; SelectObject( dcMem, hBmp ); return BitBlt( dcWnd, x, y, cx, cy, dcMem, 0, 0, SRCPAINT ); }
Proszę o odpowiedź, nie komentarze. Wiem, podałem poprawne DC oraz poprawne mapy bitowe. Preferuję rozwiązanie dla języka C, nie C++. |
|
j23 |
» 2015-11-28 15:20:29 (...) ale nagle po kilku okrążeniach planszy mapy bitowe pól i pionków (były w 2D) zrobiły się czarne. |
Bo żeś (prawdopodobnie) wyczerpał dostępne zasoby. Tworzysz kontekst pamięciowy ( dcMem), ale nigdzie go nie usuwasz. |
|
Pawlo3 Temat założony przez niniejszego użytkownika |
Czyli co? » 2015-11-28 19:51:23 Dodać linijkę: DeleteDC( dcMem ); ? |
|
Pawlo3 Temat założony przez niniejszego użytkownika |
Dzięki. » 2015-12-12 09:03:32 Już pomogło. Zamykam ten temat. |
|
« 1 » |