Страница 1 из 1

Максимальный размер окна, разрешённый системой.

Добавлено: 24 Июнь 2013, 13:09
kreator
Никто не знает, как высчитать сабж (естественно для Винды)? А то, кажется, уперлись в предел.

Re: Максимальный размер окна, разрешённый системой.

Добавлено: 24 Июнь 2013, 15:51
Дед Пахом
kreator писал(а):Никто не знает, как высчитать сабж (естественно для Винды)? А то, кажется, уперлись в предел.
Посмотри GetSystemMetrics и SystemParametersInfo

Re: Максимальный размер окна, разрешённый системой.

Добавлено: 24 Июнь 2013, 23:28
Yufil
1. Для ленивых - сделать невидимое не-mdi окно без рамки с атрибутом Maximize, открыть и померить размер :)
Prop:Pixels поможет перевести в пикселы.

2. Максимальный - точно совпадает с разрешением экрана. Если у окна нет рамки, можно окно как раз на весь экран развернуть. Для фреймов можно спрятать рамку фрейма и вывести mdi-окно на полный экран, должным образом поиграв атрибутами.

Re: Максимальный размер окна, разрешённый системой.

Добавлено: 24 Июнь 2013, 23:29
Yufil
Тут, наверное, речь о максимальном окне Windows, больше размера экрана. Тогда Sorry...

Re: Максимальный размер окна, разрешённый системой.

Добавлено: 25 Июнь 2013, 1:27
gopstop2007
может это подскажет http://habrahabr.ru/qa/9278/

Re: Максимальный размер окна, разрешённый системой.

Добавлено: 25 Июнь 2013, 10:08
kreator
Извините, что путано тему обозначил.
Дело вот в чём.
На окне создаем контролы, в основном box, line. И получается, что они по размеру огромны. И происходит что? Например, задаю ширину какой-нибудь линии - 100000 экранных единиц. Не рисует. Ну не рисует и не рисует, бросили тему, как-то выкрутились. Но проблема возникла вновь, надо решать. Возникла мысль, что есть некое ограничение на окно. Поэтому и спросил, да и интернет ничего толкового не подсказал. Но вчера вечером проводил эксперименты. Оказалось вот что. Опять же на примере линии. Выяснил, что если ширину линии изменять шагами, добавляя по где-то 21000 с чем-то экранных единиц, причём между добавлениями делать 0{prop:HScrollPos} = 255, то всё нормально. И, похоже, ограничения нет - добил до 500000. Сейчас проверяем - нет ли других косяков. Теперь интересно - откуда цифра 21000 взялась, и зависит ли она от шрифта окна и размера DPI?

Re: Максимальный размер окна, разрешённый системой.

Добавлено: 25 Июнь 2013, 10:42
Yufil
1. Лучше в пикселах считать, не зависишь от шрифта, полезно.
2. Гипотеза. 21000 в пикселах что-нибудь около волшебного числа 32767 (в попугаях оно длиннее)...

Re: Максимальный размер окна, разрешённый системой.

Добавлено: 25 Июнь 2013, 10:49
Yufil
Да, ещё попробовать поиграться с Prop:Buffer ( есть ещё Prop:LazyDisplay и Prop:DeferMove ).
Как говорится в доке - Dramatically increased :)
И мигание-искажение при отрисовке-перемещении существенно уменьшается,
особенно если контролы пересекаются или наложены на коврик с картинкой

Re: Максимальный размер окна, разрешённый системой.

Добавлено: 27 Июнь 2013, 14:32
kreator
Для шрифта 8 размера - это число 21846. Обойти его не удалось. Несмотря на то, что контролы можно построить за пределом этого числа, при скроллировании окна координаты этих контролов подгоняются к этой магической цифре. Кардинально помогает изменение размера шрифта окна в меньшую сторону. Перевод окна в пиксели тоже помогает, но чуть чуть.