HMONITOR и контекст устройства
Каждый физический дисплей представлен дескриптором монитора типа HMONITOR. Допустимая HMONITOR гарантированно не имеет значения NULL. Физический дисплей имеет тот же HMONITOR, если он является частью рабочего стола. При отправке сообщения WM_DISPLAYCHANGE любой монитор может быть удален из рабочего стола и таким образом его HMONITOR становится недействительным или изменен его параметры. Поэтому приложение должно проверить, действительно ли все HMONITORS при отправке этого сообщения.
Любая функция, возвращающая контекст устройства отображения (DC), обычно возвращает контроллер домена для основного монитора. Чтобы получить контроллер домена для другого монитора, используйте функцию EnumDisplayMonitors. Кроме того, можно использовать имя устройства из функции GetMonitorInfoдля создания контроллера домена с CreateDC. Однако если функция, например GetWindowDC или BeginPaint, получает контроллер домена для окна, охватывающего несколько дисплеев, контроллер домена также будет охватывать два дисплея.