Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум на Исходниках.RU > Borland C++ Builder/Turbo C++ Explorer > Как рисовать только рамку при изменении размеров окна?


Автор: vlad2 09.11.20, 14:31
Как программно рисовать только рамку в процессе изменения размеров окна, как это происходит, если отключена опция Windows "Отображать содержимое окна при перетаскивании"?
Обновлю окно только после окончания (WM_EXITSIZEMOVE).
Спасибо.

Автор: ЫукпШ 09.11.20, 23:46
Цитата vlad2 @
Как программно рисовать только рамку в процессе изменения размеров окна, ...

Не совсем уверен, что правильно понял вопрос.
Смотри сам, что тебе подойдёт из списка мероприятий:

1. Обработаем WM_ERASEBKGND, чтобы не было разных видео-эффектов.
2. Сделаем объект-таймер (или найдём готовый), который
можно перезапускать. Нужно программно организовать "одновибратор
с повторным запуском"
3. В обработчике WM_SIZE не будем запусать перерисовку окна
для уведомления SIZE_RESTORED.
Вместо этого для этого уведомления будем перезапускать одновибратор
(сделанный на таймере).
4. Когда сработает таймер (WM_TIMER) остановим его.
Запустим перерисовку окна.
5. Перерисовку окна будем запускать посредством InvalidateRect(...)

Комфортная задержка таймера, на мой взгляд, 400-500[mc]

Приблизительно так, но может что и забыл.

Автор: vlad2 10.11.20, 11:13
Спасибо, ЫукпШ, вопрос решился сам собой: похоже, нежелательный эффект проявляется на удалённом столе, а непосредственно за рабочим компом всё работает, как надо.
Вопрос закрываю.

Powered by Invision Power Board (https://www.invisionboard.com)
© Invision Power Services (https://www.invisionpower.com)