Okay, quindi nella mia richiesta, ci sono un sacco di WinAPI e pochi controlli personalizzati. Yay ...doppio buffering WINAPI
Ora, normalmente, si ridisegneranno silenziosamente per animazioni, cambi di stato, ecc .... e tutto funziona perfettamente.
ma ho un metodo della classe finestra chiamata fix(). Questo viene chiamato ogni volta che è necessario aggiornare l'intera finestra. Ridimensiona i controlli e invalida la finestra.
Quando questo accade, lo sfondo è disegnata, quindi il controllo scheda, poi tutti gli altri sulla parte superiore. Ciò provoca un lampeggiamento molto irritante, soprattutto quando si ridimensiona la finestra (a causa delle continue chiamate a fix()).
Quello che ho cercato:
- WS_EX_COMPOSITED. Questo solo doppio buffer i singoli controlli. È un miglioramento, ma lo sfarfallio rimane inevitabilmente.
- Disattivazione del disegno di sfondo. Difficilmente risolve il problema, e in realtà peggiora le cose.
Quindi: Ho bisogno di una tecnica/metodo/a che mi permette di raddoppiare-buffer della finestra nella sua interezza. Ho pensato che gestire il messaggio WM_PAINT da solo potesse essere una soluzione, ma non saprei da dove cominciare. Ho la sensazione orribile questo non è nemmeno possibile ...
Si prega di aiuto, questo è un problema critico. Sarò molto sollevato quando verrà risolto questo stupido piccolo problema.
Forse controllare questa pagina? http://www.gamedev.net/community/forums/topic.asp?topic_id=411559 –