Что такое уведомление при изменении количества мониторов?

Мне любопытно, что за сообщение Win32 транслируется при изменении количества мониторов в системе? Я думал, что это был WM_DISPLAYCHANGE, но я был не прав.

1 ответ

Решение

Это довольно легко проверить с Microsoft Spy++, В моем случае я проверил Windows 7 x64 с двумя подключенными мониторами и выключил и снова включил второй монитор.

При удалении монитора вы увидите WM_DISPLAYCHANGE, но не при добавлении монитора.

Вы увидите WM_DEVICECHANGE с DBT_DEVNODES_CHANGED (после RegisterDeviceNotification).

Ты увидишь WM_SETTINGCHANGE за SPI_SETWORKAREA а также SPI_ICONVERTICALSPACING,

И вы увидите зарегистрированные сообщения "UxdDisplayChangeMessage" и "HotplugDetected" (второе только при добавлении монитора). Вы можете использовать RegisterWindowMessage, чтобы получить идентификатор для этих сообщений.

Другие вопросы по тегам