WinAPI grafika (odświeżanie okna)

0

Problem leży w tym, że co 100ms muszę odświeżać informacje i rysować je na ekranie za pomocą TextOut(). Jednak obraz strasznie migocze. Rysowanie odbywa się wewnątrz komunikatu WM_PAINT, a wewnątrz komunikatu WM_TIMER umieściłem funkcję InvalidateRect(). Informacje do odświeżania to jakieś 200 znakow + 3 linie pionowe. U mnie na komputerze działa wyśmienicie, jednak na gorszym sprzęcie strasznie migocze. Jak można usprawnić wyświetlanie na ekranie?

1

Przy tak częstym odświeżaniu przydałby się double buffering. Tu jest krótki wątek jak to zrobić: http://www.cplusplus.com/forum/windows/35484/. W google pod hasłem winapi double buffering znajdziesz sporo info. To powinno rozwiązać ten problem(tak mi się wydaje) ;)

0

Czasem takie problemy można usunąć rezygnując z flagi WS_CLIPCHILDREN w klasie okna. Jeśli jej używasz spróbuj ją wyłączyć. Powinno to podnieść wydajność. Bez tej flagi musimy sami dbać o to by poszczególne dzieci okna oraz to co rysujemy nie nachodziły na siebie.

0

Podwójne buforowanie pomogło, a flagi CLIPCHILDREN nie miałem ustawionej ale dobrze będzie wiedzieć o niej na przyszłość.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.