Почему тормозит HDC при WM_PAINT

Ответить

Код подтверждения
Введите код в точности так, как вы его видите. Регистр символов не имеет значения.

BBCode ВКЛЮЧЁН
[img] ВКЛЮЧЁН
[url] ВКЛЮЧЁН
Смайлики ОТКЛЮЧЕНЫ

Обзор темы
   

Развернуть Обзор темы: Почему тормозит HDC при WM_PAINT

Romeo » 25 ноя 2004, 11:01

На том, что нужно писать в память, мы уже и так сошлись. Естественно это нужно делать через Compatible DC. Всевозможные плюсовые враперы только приветствуются. Говоря же о "собственном" DC я имел в виду стиль класса окна CS_OWNDC. О нём можно подробнее знать в MSDN.

DeeJayC » 25 ноя 2004, 01:22

Vitold S писал(а):
Romeo писал(а):Есть также выход создавать окно с "собственным" DC.
Не совсем понял... Это как?
Есть такой класс - CMemDC называется. Очень удобно и без фликов.
http://www.codeguru.com/Cpp/misc/misc/f ... .php/c389/

Погляди, как это сделано.

Vitold S » 24 ноя 2004, 21:41

Romeo писал(а):Есть также выход создавать окно с "собственным" DC.
Не совсем понял... Это как?

Romeo » 24 ноя 2004, 14:44

Есть также выход создавать окно с "собственным" DC.

Eugie » 24 ноя 2004, 13:04

"Теневая память" - это compatible DC что ли? Просто словосочетание shadow memory вызывает другие устойчивые ассоциации.

Насчет мигания, попробуй обрабтывать WM_ERASEBACKGROUND, т.е. просто возвращай TRUE (тогда не будет вызван стандартный обработчик, закрашивающий клиентскую область оконной кистью).

Vitold S » 23 ноя 2004, 18:06

Romeo писал(а):В Delphi TImage пишет всё в память, а при инвалидации отрисовывает то, что ранее написал.
Я поступаю точно так же... Я же сказал, что пользуюсь теневой памятью... Но все равно даже на пеньках видно промигивание, которого нет под Delphi... Может есть еще какие способы??? Там он не ждет обратного хода луча или еще чего-нибудь???

Romeo » 23 ноя 2004, 11:31

Если нужна суперскорость - HDC всё равно не подходит. Либо Direct Show, либо OpenGL.

Romeo » 23 ноя 2004, 11:29

В Delphi TImage пишет всё в память, а при инвалидации отрисовывает то, что ранее написал.

Почему тормозит HDC при WM_PAINT

Vitold S » 22 ноя 2004, 23:59

Вопрос почему тормозит отрисовка WM_PAINT при работе с HDC... Можно ли как нибудь этого избежать... Почему происходит мигание...

P.S. Пользуюсь "теневой памятью" для более быстрой генерации изображения... Ну не пользоваться же Direct Draw??? Как это реализовано в Delphi... Там это очень быстро и не мигает...

Вернуться к началу