WinAPI с двойной буферизацией

Хорошо, в моем приложении есть куча winAPI и несколько настраиваемые элементы управления. Ура ...

Теперь, как правило, они просто незаметно перерисовывают себя для анимации, изменения состояния и т. Д. ... и все работает нормально.

Но у меня есть метод класса Window под названием fix (). Это вызывается всякий раз, когда необходимо обновить все окно. Он изменяет размер элементов управления и делает окно недействительным.

Когда это происходит, рисуется фон, затем вкладка, затем все остальные сверху. Это вызывает очень раздражающее мигание, особенно при изменении размера окна (из-за постоянных вызовов fix ()).

Что я пробовал:

  • WS_EX_COMPOSITED. Это только двойная буферизация отдельных элементов управления. Это улучшение, но мерцание неизбежно остается.
  • Отключение фонового рисования. Вряд ли решает проблему и на самом деле только усугубляет ситуацию.

Итак: мне нужна техника / метод / что угодно, чтобы позволить мне полностью выполнить двойную буферизацию окна. Я подумал, что обработка сообщения WM_PAINT сама по себе может быть решением, но я не знал, с чего начать. У меня ужасное предчувствие, что это даже невозможно ...

Помогите, пожалуйста, это критическая проблема. Я буду очень рад, когда эта дурацкая проблема будет исправлена.

5
задан Alexander Rafferty 11 October 2010 в 06:52
поделиться