![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Baa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2639 Регистрация: 12.4.2002 Где: Москва Репутация: 8 Всего: 12 |
Видел, что возникал вопрос о том, как избежать мерцания...может кого-нить это еще интересует.
http://devstate.by.ru/tutorial/Draw.html -------------------- "Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande |
|||
|
||||
| bavc |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 58 Регистрация: 14.8.2002 Репутация: нет Всего: нет |
Вопрос то избитый а ответ кроется в двух строчках остальное детали
Рисовать надо на внеэкранной канве + битинг все. |
|||
|
||||
| Baa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2639 Регистрация: 12.4.2002 Где: Москва Репутация: 8 Всего: 12 |
Интересно, зачем было отвечать на это сообщение практически тем же, что в статье написано? -------------------- "Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande |
|||
|
||||
| Temnozor |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 134 Регистрация: 27.6.2002 Где: Тюмень Репутация: нет Всего: нет |
Мне кажется, что вопрос раскрыт не полностью.
Мелькание часто возникает даже не из-за того, что кто-то рисует сразу на экране. Часто перед тем как обновить окно, система стирает старое изображение (делает erase). Стирает, по умолчанию это означает, что закрашивает всю client area белым цветом. Вот тут происходит такое мелькание, что аж жуть. Боролся я с этим просто:
--------------------
Take a ride on, ride on, on your rotting horse on that deadly ground Take a ride, ride on, on your rotting horse with a pounding sound. |
|||
|
||||
| Baa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2639 Регистрация: 12.4.2002 Где: Москва Репутация: 8 Всего: 12 |
Дык я делаю то же самое (FillRect(hdc, &rect, (HBRUSH) (COLOR_WINDOW+1));)
т.е. стираю изображение закрашивая. -------------------- "Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande |
|||
|
||||
| Temnozor |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 134 Регистрация: 27.6.2002 Где: Тюмень Репутация: нет Всего: нет |
Нет.
Erase работает в момент, когда сгенеренное изображение копируется (BitBlt) на экран и происходит обновление окна. Система по-тупому удаляет старое изображение (закрашивая белым), и бросает новое. У меня такое постоянно было. (Возможно, такое происходит не всегда, а при определенной системе отрисовки, реализованной в программе - такой как у меня - в OnDraw и OnPaint из рисующих функций у меня только функция BitBlt встречается). И вышеупомянутая мной функция меня спасает. --------------------
Take a ride on, ride on, on your rotting horse on that deadly ground Take a ride, ride on, on your rotting horse with a pounding sound. |
|||
|
||||
| Grygory |
|
|||
|
Unregistered |
Для рисования более приоритетно использовать функции DirectX или OpenGL.
|
|||
|
||||
| Tamerlann |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 183 Регистрация: 10.11.2002 Где: Минск, Беларусь Репутация: нет Всего: 2 |
Ага, DirectX, OpenGL... И тогда у программ появляются ситсемные требования вроде: GeForce2-64Mb, 256 RAM чтобы создать простую анимацию. Лучше уж повозиться немного зато сделать Хорошую Прогу. --------------------
http://timursdev.blogspot.com/ |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |