| | |
| Lavr wrote: Я готов объяснить эту проблему только в более спокойном ключе. Дело в том, что настройка Размер шрифта крупный: 125% обычного размера (120 dpi). влияет на метрики Винды весьма глобально. Об этом все забывают, и я чуть позже приведу пример, как серьёзно это влияет. | |
| | |
Значит спокойно объясняю суть проблемы: обычно никто размер шрифтов, выставленный
Виндой по умолчанию - не меняет.
При современных крупных (в пикселях) экранах все экранные надписи становятся довольно
мелкими и за день глаза устают. Поэтому я у себя ставлю настройку:
Вобще-то Венда при выборе этой настройки честно предупреждает, что
некоторые программы
могут отображаться некорректно, и я лично об этом знаю - это следует учитывать при
программировании - но не все об этом знают в принципе.
Вот пример неплохой программы, автор которой об этой проблеме, похоже, совсем не знал.
Вот её внешний вид,
когда шрифты выставлены обычные:
Теперь выставим:
Размер шрифта крупный: 125% обычного размера (120 dpi).
И программа поплыла...
Проблема вот в чем - Винда не может никаким способом определить - большой у меня
экран дисплея или маленький - но не в точках, а в реальном размере.
Поэтому авторы Винды сориентировались на весьма непоказательный фактор - если юзер
выставил крупные шрифты, значит у него физически большой экран.
А поскольку они тужились реализовать принцип Виз-Виг, то для якобы "реальной"
пропорциональности виндовая геометрия изменяется.
Там в МСДН где-то есть формулы, как они это пересчитывают, но вывод общий такой:
то, что было рассчитано в свои размеры в пикселях - на экране поплывёт...
Способы решения этой проблемы имеются - но мы же не о них здесь?
А вот автор приведенной выше программы писал её на VB, и в настройках своего
"
графического конструктора" - выставил единицы - пиксели.
Вот всё и плывёт.
Кстати, этой болезнью не болеют модальные окна Венды - они почему-то делают нужную
коррекцию сами...
Но вот картинки - вставленные без "
растяжки" (StretchBlt) - тоже теряют геометрию...
Вот типичный пример выше...