Форум программистов CodeGuru
23 Апрель 2018, 21:29:06 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Войти
Новости:
 
   Начало   Помощь Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: Событие после изменения размеров окна  (Прочитано 16780 раз)
0 Пользователей и 1 Гость смотрят эту тему.
CatWarrior
Пользователь
***
Офлайн Офлайн

Сообщений: 44


Просмотр профиля WWW
« : 22 Январь 2006, 22:08:02 »

Мне нужно сделать перерисовку после завершения изменения размеров окна. т.к. это мне обходится достаточно дорого то я не могу себе позволить десятками раз вызывать перерисовку в обработчике OnSize. А так как клики по границе окна не ловят OnLButtonDown и OnLButtonUp то я просто озадачен Тащусь !
Записан
3V
Администратор
Ветеран
*****
Офлайн Офлайн

Сообщений: 1347



Просмотр профиля WWW
« Ответ #1 : 24 Январь 2006, 02:54:38 »

Навскидку - два решения.

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

2. Можно в onpaint запускать таймер (например, на 1 секунду). Рисовать только при выставленном некотором флаге. Также в onpaint флаг сбрасывать, а в обработчике таймера - флаг снова выставлять. А если флаг не выставлен, то просто заливать окно цветом фона. Т.о. отрисовка будет происходить не чаще 1 раза в секунду. Это, конечно, может пользователя напрягать. Но это просто принцип... Можно в idle картинку обновлять.
Записан

Страниц: [1]   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2015, Simple Machines Valid XHTML 1.0! Valid CSS!