Поддержка нескольких мониторов - PullRequest
4 голосов
/ 27 октября 2009

Я хочу обеспечить поддержку нескольких мониторов в моем приложении.

В прошлом у меня было упрощенное представление о том, что поддержка нескольких мониторов - это просто отсутствие открытых ошибок, связанных с несколькими мониторами. Если кажется, что он работает с настройкой нескольких мониторов, значит, он поддерживает несколько мониторов, верно?

Но я бы хотел установить некоторые четкие требования по этому поводу.

Каким основным требованиям я должен следовать, чтобы удовлетворить ожидания большинства пользователей, чтобы они могли сказать «да, это приложение поддерживает мультимониторы»?

Например, очевидным требованием является то, что все окна / окна сообщений / всплывающие подсказки и т. Д. Должны открываться на том же мониторе, на котором включено приложение. И любые дочерние элементы этих окон должны открываться на том же мониторе, что и их родительские элементы.

Вы можете думать о чем-нибудь еще? Есть ли какие-либо указания по этому поводу где-нибудь?

Ответы [ 4 ]

8 голосов
/ 27 октября 2009
  • если приложение в последний раз использовалось для настройки нескольких мониторов и запускалось во второй раз, когда ни один из дополнительных мониторов не был подключен, то приложите к этому приложению смысл, а также все поля и рабочие области возвращайтесь на главный экран.

(Затмение не делает этого, и это чертовски меня раздражает)

3 голосов
/ 27 октября 2009

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

1 голос
/ 28 октября 2009

Пара неприятностей, на которые стоит обратить внимание из личного опыта (в любом случае с GDI и Direct3D9):

  • Когда два монитора имеют разную битовую глубину, и пользователь расширяет окно, чтобы охватить оба монитора, или перетаскивает его с одного на другой ... ну, это может стать уродливым, если ваше приложение этого не ожидало. Раньше было гораздо больше головной боли, когда системы могли смешивать 8-битные дисплеи на паллетах с RGB-дисплеями с большей битовой глубиной (хотя следует помнить, что такие конфигурации все еще существуют для определенных специализированных приложений).

  • Окна Direct3D, созданные на одном «устройстве D3D», могут нуждаться во внимании, если вы перетаскиваете их на другой дисплей (полностью или частично). В зависимости от того, как вы настроили устройство, окна либо ничего не отображают на другом дисплее, либо отображают контент, но с огромным объемом обработки ЦП накладные расходы (достаточно, чтобы убить высокую частоту кадров). (В любом случае это было верно для XP).

1 голос
/ 27 октября 2009

Я всегда думал, что это ответственность ОС. Похоже, так на Mac. Увы, я столкнулся с множеством приложений в Windows, которые не очень хорошо работают на двух мониторах, хотя я склонен винить это на видеокарте.

Моя самая большая жалоба - это приложения, которые настаивают на использовании только интерфейса MDI. MDI хороши, если у вас ограниченное пространство на экране, но они раздражают, когда у вас действительно много места на экране и вы хотите, чтобы плавающие поддоны / документы были отделены друг от друга.

...