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?
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) ;)
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.
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.