Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

odświeżanie bitmap w winapi - visual studio

NewToN20 03 Dec 2006 22:38 1896 1
  • #1
    NewToN20
    Level 12  
    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.
  • #2
    MirekCz
    Level 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.