最近需要在windows下进行多显示器编程,问题是:怎么样获取所有的显示器的分辨率(比如:有三个显示器M1、M2、M3,如何分别取得它们三个的分辨率)
下面是一些网友讨论的记录:
Demo: http://download.csdn.net/detail/w_sx12553/5027326
关于如何获得显示器编号的讨论:
Windows系统从来不会给某一个显示器分配一个编号!
你所看到编号,不过是系统在配置的时候,为了让你分辨不同的显示器而显示的编号。
Windows系统中的显示器始终又隐含一个编号!
在Windows系统中,通常一块显卡可以包含多个:DISPLAY_DEVICE,每一个DISPLAY_DEVICE下面可以挂接一个Monitor。
我当时是这样做的:枚举系统中的显卡,然后枚举下面的DISPLAY_DEVICE,对于每一个DISPLAY_DEVICE,检查(可以通过EnumDisplaySettingsEx)是否挂接得有Monitor。如果有,就计数。
你所看到的编号就是这些Monitor被枚举出来的顺序。
上面的方法我是在Windows7与intel 核心显卡HD4000上测试过的。2个显示器确实与Windows系统的编号一致。
个人猜测:事实上这个枚举过程所出现的结果,与系统无关,而是与
你所看到编号,不过是系统在配置的时候,为了让你分辨不同的显示器而显示的编号。
Windows系统中的显示器始终又隐含一个编号!
在Windows系统中,通常一块显卡可以包含多个:DISPLAY_DEVICE,每一个DISPLAY_DEVICE下面可以挂接一个Monitor。
我当时是这样做的:枚举系统中的显卡,然后枚举下面的DISPLAY_DEVICE,对于每一个DISPLAY_DEVICE,检查(可以通过EnumDisplaySettingsEx)是否挂接得有Monitor。如果有,就计数。
你所看到的编号就是这些Monitor被枚举出来的顺序。
上面的方法我是在Windows7与intel 核心显卡HD4000上测试过的。2个显示器确实与Windows系统的编号一致。
个人猜测:事实上这个枚举过程所出现的结果,与系统无关,而是与