Тема уже поднималась неоднократно, но все время в отдельных специфических контекстах. Хочется составить список того, чего нужно делать, чтобы программа работала корректно на многомониторных системах.
Например, сейчас в своей приблуде я делаю такое телодвижение. При сохранении позиции окна получаю экран по контролу (.NET, Screen.FromControl(form)), запоминаю название экрана (DeviceName, например "\\.\DISPLAY2"), вычисляю координаты окна относительно этого экрана и запоминаю название и относительные координаты. При восстановлении ищу экран с таким именем. Если нахожу — прибавляю его верхнюю левую точку, иначе ничего не делаю. Таким образом, отключение, подключение, перемещение экранов отрабатывается корректно.
Уже
сказаноАвтор: nzeemin
Дата: 07.04.05
, что "центровка <модальных диалогов> должна быть либо относительно активного экрана, либо относительно родительского окна."
При позиционировании чего-либо выпадающего (комбик, меню, етк) над проверять, что размер его не вылезет за нижнюю границу того экрана, на котором расположена большая часть контрола, из которого что-то выпадает. Если вылазит — вывалить не вниз, а вверх.
Кто еще что может добавить?
Мои вопросы:
1. Может ли быть разный DPI на разных мониторах (Large Fonts)? Если да, то как этого добиться.
2. Какие есть популярные приблуды для мультимониторности, возможности которых стоило бы учесть. Например, есть ли такие, которые делают второй Notification Area (tray)?
... << RSDN@Home 1.1.4 beta 4 rev. 395>>
Здравствуйте, marx paul, Вы писали:
O>>>Мои вопросы:
O>>>1. Может ли быть разный DPI на разных мониторах (Large Fonts)? Если да, то как этого добиться.
N>>Насколько я знаю — НЕТ, при переключении на одном сразу изменяется на другом (проверил только что).
N>>DPI монитора может варьироваться от 72 до 192dpi, типичными значениями являются 96 и 120dpi. Естественно, никакой связи с реальным dpi тут нет.
MP>ne prawda — realno sizhu na sisteme s 3mja monitorami, u 2h iz nih raznyj dpi
как сделать?
... << RSDN@Home 1.1.4 beta 6 rev. 425>>