winapi – 检测在Windows 7下连接或删除的外部显示器

前端之家收集整理的这篇文章主要介绍了winapi – 检测在Windows 7下连接或删除的外部显示器前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
每次从运行 Windows 7的笔记本电脑插入外接LCD监视器或拔下插头时,是否有某些事件或通知我可以接收或挂机?

笔记本电脑检测到这一点并将我的显示切换到外部屏幕并返回某些类型的调整大小或重新定位,但这是否由操作系统公开,以便应用程序可以提供处理程序,附加脚本等?

如果没有,是否有我可以不时轮询的注册表设置或API?

(我更喜欢编程C Win32 API)

UPDATE

Mike的回答如下,WM_DEVICECHANGE让我到了RegisterDeviceNotification(),但到目前为止我正在努力实现它……

更新2

这个问题已被问过几次不同的措辞,但在我看来还没有完全回答:

> How to detect hot plugging of monitor in a win32 application?
> Getting an event on monitor hotplug for windows

根据 this article,Windows在显示分辨率更改时以及添加删除显示时发送WM_DISPLAYCHANGE消息.

如果由于添加删除监视器而需要对桌面大小更改做出反应,则可以在此消息的处理程序中执行此操作. LPARAM为您提供窗口所在显示的新分辨率.请注意,如果您使用除100%以外的任何其他内容进行系统DPI缩放并且您的程序不是DPI-aware,则此分辨率将被缩放.

或者,使用EnumDisplayMonitors函数获取每个连接的监视器的显示分辨率以及虚拟桌面中监视器的相对位置.无论DPI缩放如何,此功能都使用实际设备像素值.

猜你在找的Windows相关文章