监视器数量变化时的通知是什么?

c00*_*0fd 9 c c++ windows winapi

我很好奇,当系统中的监视器数量发生变化时,广播的Win32通知是什么?我以为是WM_DISPLAYCHANGE,但我错了.

Wer*_*nze 12

这很容易检查Microsoft Spy++.在我的情况下,我检查了Windows 7 x64,连接了两台显示器,然后关闭再打开第二台显示器.

移除监视器时,您将看到a WM_DISPLAYCHANGE,但在添加监视器时则看不到.

您将看到一个WM_DEVICECHANGEwith DBT_DEVNODES_CHANGED(在RegisterDeviceNotification之后).

你会看到WM_SETTINGCHANGESPI_SETWORKAREASPI_ICONVERTICALSPACING.

您将看到已注册的消息"UxdDisplayChangeMes​​sage"和"HotplugDetected"(仅在添加监视器时为第二个).您可以使用RegisterWindowMessage获取这些消息的标识符.