OberonCore
https://forum.oberoncore.ru/

Фикс ресайза окон
https://forum.oberoncore.ru/viewtopic.php?f=131&t=3470
Страница 1 из 1

Автор:  ilovb [ Понедельник, 06 Июнь, 2011 10:02 ]
Заголовок сообщения:  Фикс ресайза окон

Думаю многие заметили, что в BlackBox окна перерисовываются только при растяжении окна. А при уменьшении размеров перерисовка происходит только в момент отпускания кнопки мыши.

Фикс включающий репайнт при любых изменениях размера выделен красным

Вложения:
Фикс ресайза.png
Фикс ресайза.png [ 76.47 КБ | Просмотров: 14156 ]

Автор:  Info21 [ Понедельник, 06 Июнь, 2011 22:55 ]
Заголовок сообщения:  Re: Фикс ресайза окон

ilovb писал(а):
в BlackBox окна перерисовываются только при растяжении окна. А при уменьшении размеров перерисовка происходит только в момент отпускания кнопки мыши.

Фикс включающий репайнт при любых изменениях размера выделен красным
А как выключить перерисовку при растяжении? :)
Раз уж Вы въехали в предмет.

Автор:  ilovb [ Вторник, 07 Июнь, 2011 08:31 ]
Заголовок сообщения:  Re: Фикс ресайза окон

А вы представляете себе как ужасно это будет выглядеть?

На сколько я понял логику винапи, в стародавние времена разработчики ориентировались на статическое содержимое окон. В итоге уменьшение окна не приводит к невалидности содержимого (оно просто обрезается границами окна). И достаточно только дорисовать скроллбары. А вот растяжение открывает скрытые участки содержимого, т.е. окно становится невалидным.

Для динамического содержимого нужно перерисовывать всегда.

Автор:  Пётр Кушнир [ Вторник, 07 Июнь, 2011 09:17 ]
Заголовок сообщения:  Re: Фикс ресайза окон

всё работает.
один момент - текст с картинки копировать неудобно ;)

Автор:  Евгений Темиргалеев [ Среда, 06 Ноябрь, 2013 16:48 ]
Заголовок сообщения:  Re: Фикс ресайза окон

Info21 писал(а):
А как выключить перерисовку при растяжении?
В настройках системы. Для XP --- свойства системы, дополнительно, быстродействие, параметры; закладка "визуальные эффекты", галка "отображать содержимое окна при перетаскивании". Для 7-ки в классической шкуре, кажется, тоже есть; про другие шкуры не знаю.

Автор:  Евгений Темиргалеев [ Среда, 06 Ноябрь, 2013 17:04 ]
Заголовок сообщения:  Re: Фикс ресайза окон

ilovb писал(а):
На сколько я понял логику винапи, в стародавние времена разработчики ориентировались на статическое содержимое окон. В итоге уменьшение окна не приводит к невалидности содержимого (оно просто обрезается границами окна). И достаточно только дорисовать скроллбары. А вот растяжение открывает скрытые участки содержимого, т.е. окно становится невалидным.

Для динамического содержимого нужно перерисовывать всегда.
Для текстов в которых ширина документа по размеру листа, а не размеру окна, содержимое окна и есть статическое. Полная перерисовка при увеличении не нужна.

А много ли документов, в которых она требуется? (сам этого не вижу, потому что у меня при изменении размера перерисовывается только рамка)

Автор:  ilovb [ Среда, 06 Ноябрь, 2013 18:34 ]
Заголовок сообщения:  Re: Фикс ресайза окон

Евгений Темиргалеев писал(а):
Для текстов в которых ширина документа по размеру листа, а не размеру окна, содержимое окна и есть статическое. Полная перерисовка при увеличении не нужна.

А много ли документов, в которых она требуется? (сам этого не вижу, потому что у меня при изменении размера перерисовывается только рамка)

Ну на мой взгляд перерисовка должна быть всегда для графики (типа графиков Ивана).
Для документов по размеру листа действительно не нужно. Но лично я всегда документы ставлю под размер окна.

Автор:  Евгений Темиргалеев [ Среда, 06 Ноябрь, 2013 19:01 ]
Заголовок сообщения:  Re: Фикс ресайза окон

Кстати, какие есть возражения против того, чтобы написать просто в стиле оригинала?

class.style := {0, 1, 3, 5} (* vredraw, hredraw, doubleclicks, privat dc *)

Автор:  ilovb [ Среда, 06 Ноябрь, 2013 19:16 ]
Заголовок сообщения:  Re: Фикс ресайза окон

Никаких. Так даже кошернее.

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/