День добрый. Такой вопрос... Предположим, у нас есть главное окно программы... На нем - более сотни дочерних окошек, которые выводят какую-то информацию... Логично предположить, что если эти окошки выводят, условно, "сложную" информацию (ну, скажем... не просто TextOut, а чегой-то, связанное с графикой) + содержимое этих окошек меняется достаточно редко... То, наверное, стоит выставить этим окошкам стиль SS_BITMAP, и создавать-назначать им картинку, при изменении их содержимого, сводя обработку WM_PAINT к BitBlt? Соответственно, вопроса два: а. Целесообразно ли такое "кеширование"? б. Если на вопрос "а" ответ "да", то где проходит грань между "какие окошки надо кэшировать, а какие - нет"?
М-да.. Ну давай начнем с того, что оптимизация графики (ее основы), уже давно известны. 1.Работать через контекст памяти:самый быстрый вывод средствами АПИ-блитовые операции. Рисование в контексте-способ избежать мерцания. Вот и все.Быстрее не будет. 2.Самому контролировать регионы отсечения,для перерисовки НУЖНОГО места окна.В том случае,если винде не доверяешь.Используется редко,т.к. гемморно и не всегда оправдано.Но иногда бывает нужным 3.Использовать обычную оптимизацию программиста (т.е. все битмапы и контесты-готовит заранее, а не в процессе рисования) Вот и все. Все остальное-"кэшироваие,мапирование,буфферизация,сортировка" и прочие слова,которые вообще к графике отношения не имеют-бурная фантазия автора и от лукавого. Что касается "более сотен окошек"-хм.Страный подход к дизайну.Может стоит рисовать и обновлять 100 фрагментов в ОДНОМ окне? Ну да ладно,может автору видней.Так вот-указание расширеного стиля статическому элементу SS_BITMAP-ни в коем случае не избавит его от сообщения WM_PAINT! Ну никак.Как впрочем и другое любое окно,любого стиля.А теперь подумай-если все одно,минимум раз прийдет сообщение WM_PAINT-будет ли "кэширование"?