Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

"Czarna mapa bitowa"

Ostatnio zmodyfikowano 2015-12-12 09:03
Autor Wiadomość
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):
C/C++
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++.
P-140986
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.
P-140993
Pawlo3
Temat założony przez niniejszego użytkownika
Czyli co?
» 2015-11-28 19:51:23
Dodać linijkę:
DeleteDC( dcMem );
?
P-141024
Pawlo3
Temat założony przez niniejszego użytkownika
Dzięki.
» 2015-12-12 09:03:32
Już pomogło. Zamykam ten temat.
P-141809
« 1 »
  Strona 1 z 1