Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

odświeżanie bitmap w winapi - visual studio

NewToN20 03 Gru 2006 22:38 1680 1
  • #1 03 Gru 2006 22:38
    NewToN20
    Poziom 11  

    Witam, mam następujący problem, pewnie dla większości okaże się on banalny, ale ja jakoś nie mogę go zwalczyc :/. Chodzi mi o to, że chcę zrobić swój interfejs w okienku, swoje guziki, swoje pola tekstowe itp, itd. No i problem pojawia sie w momęcie rozciągania okienka. Taki sam problem mam przy swojej grze 'Bomberman' (każdy chyba zna wiec nie będę przytaczał zresztą nie o to chodzi) kiedy poruszam sie postacią bitmapa mruga, wszystko jest spowodowane odświeżaniem (InvalidateRect( ...) ). Kombinowałem już z podwójnym buforowaniem, ale i to nie za wiele mi daje, albo po prostu źle to użyłem.
    Proszę o pomoc, jakieś wskazówki, rady.

    Z góry dziękuje za odpowiedzi. Pozdrawiam Was wszystkich i każdego z osobna.

    0 1
  • #2 03 Gru 2006 23:52
    MirekCz
    Poziom 35  

    Docelowo do grafiki powinieneś używać DirectX lub OpenGL.
    Możesz też używać jakąś bibliotekę, która jest nakładką na nie (SDL,Allegro) - taka biblioteka ma swój zasób funkcji, które są przeważnie uproszczoną formą funkcji DirectX/OpenGL.

    Jeżeli pracujesz w okienku z czystym gdi to:

    1.Powinieneś najpierw rysować do bitmapy o wielkości okienka, a dopiero potem w WM_PAINT całą bitmapę jedną komendą kopiować na ekran.

    2.Windows normalnie przy odświeżaniu okna rysuje tło. Wysyła komendę WM_NCPAINT czy coś takiego (normalnie do listy komend tak jak WM_CREATE). Jeżeli przejmiesz tą komendę i po prostu wpiszesz w nią return 0; (czyli nic nie robi) to tło nie zostanie odrysowane -> obraz nie będzie ciągle odświeżany bitmapa/tło/bitmapa/tło.

    0