Диалоги без мерцания с пользовательскими элементами управления - PullRequest
1 голос
/ 23 февраля 2012

У меня проблема с диалоговыми окнами MFC, которые нарисованы с использованием производных классов MFC для пользовательского рисования элементов управления.

У одного из наших клиентов есть очень медленный ПК с плохой видеокартой и даже обычная окраска диалогов Windows.довольно медленноВ нашем случае проблема намного хуже.Каждый отдельный элемент управления (например, кнопки, групповые блоки, метки) может отображаться отдельно.

В большинстве случаев я переопределил / реализовал обработчики OnPaint (), думая, что я рисую в любом контексте устройства.при условии, должен быть путь.

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

Может кто-нибудь посоветовать мне, как мне добиться такой двойной буферизации?

1 Ответ

0 голосов
/ 24 февраля 2012

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

Кто-нибудь знает, как я могу остановить постоянное появление сообщений WM_PAINT / WM_ERASEBKGND?

...