2012-11-16 20 views
2

如果显示器的连接改变,Windows是否会发送任何消息?Windows多显示器的位置

例如如果从WM_DEVICECHANGE插入PC中的新监视器,我会收到信息。

当我改变显示器的位置时,我需要这样的信息。

(在poisiton我的意思是: 第一台显示器的左侧,第二台显示器到右侧之后,我改变poisiton,第一监督权,第二次监测的左侧。)

+0

我发现这个:http://msdn.microsoft.com/en-us/library/ms695534(v=vs.85).aspx从这个http://stackoverflow.com/questions/11004051/how-to -recognize-when-number-position-or-resolution-of-monitor-has-changed – Lucian

回答

1

你可以听为WM_DISPLAYCHANGE消息。

该文档说它是在显示器分辨率变化时发送的,但我在Win7上用Spy ++进行实验表明它也是在多个显示器上进行排列变化发送的(事实上,它是唯一发送的系统范围通知那时候)。

+0

我看到了WM_DISPLAYCHANGE消息在改变位置时发送,但它只包含位深度和分辨率。我无法确定显示器在哪里。 – Golyo

+0

@戈利奥你怎么最初确定显示器的位置?当你从WM_DISPLAYCHANGE得到一个事件时,你不能重新调用这个方法吗? – Ian

+0

@Golyo:使用[GetMonitorInfo](http://msdn.microsoft.com/en-us/library/dd144901%28VS.85%29.aspx) – Andrey