Поделиться через


Использование нескольких мониторов в качестве независимых дисплеев

При использовании нескольких мониторов в качестве независимых дисплеев рабочий стол содержит один дисплей или набор дисплеев. Этот набор дисплеев всегда включает основной монитор и ведет себя так, как описано в других разделах этого раздела. Приложение может использовать любой другой монитор в качестве независимого дисплея.

Примечание

Использование других мониторов в качестве независимых дисплеев не поддерживается в драйверах, реализованных в модели windows Display Driver Model (WDDM).

 

Диспетчер окон ничего не знает о независимых дисплеях. Они полностью контролируются приложением, а функции диспетчера окон недоступны для приложения (все вызовы диспетчера окон автоматически переходят на основной дисплей). Каждое независимое отображение имеет собственные координаты происхождения, а также горизонтальные и вертикальные координаты. Доступ к ней осуществляется через функции GDI, такие как CreateDC , или функции DirectX, такие как DirectDrawCreate.

Чтобы найти независимые дисплеи, вызовите EnumDisplayDevices и найдите дисплеи, которые не имеют флага DISPLAY_DEVICE_ATTACHED_TO_DESKTOP в структуре DISPLAY_DEVICE .

Приложение может открыть дисплей путем вызова

hdc = CreateDC(lpszDisplayName, NULL, NULL, lpDevMode);

В этом вызове параметр lpszDisplayName является одним из имен устройств, возвращаемых EnumDisplayDevices , а lpDevMode — описанием графического режима для этого устройства. Результирующий hdc можно использовать для выполнения любой графической операции с устройством.