2010-11-17 69 views
2

如何在win32中获得当前分辨率?我知道我可以使用GetMonitorInfo来获得显示器的当前边界矩形,但我怎样才能获得比特深度?非常多,我如何获得给定监视器的DEVMODE结构?win32:获取显示器的当前DEVMODE

我正在使用python和pywin32,所以解决这些问题的解决方案特别好,但只是winapi调用会做。

回答

1

除了在Dean的答案中提到的EnumDisplayMonitors函数,您需要GetDeviceCaps()。请参阅参数BITSPIXEL:它为您提供每个像素的相邻颜色位数。

+0

EnumDisplayMonitors没有返回有效的DC ...但是使用'GetWindowDC'和'GetDeviceCaps'效果很好,谢谢! – Claudiu 2010-11-17 18:30:12

0

您需要使用EnumDisplayMonitors函数,该函数为每个监视器调用回调函数,并传递矩形和设备上下文(其中包含颜色信息)。

pywin32有win32api.EnumDisplayMonitors,它似乎在封面下使用EnumDisplayMonitors返回一个列表,其中包含与上面提到的相同的细节。

+0

如何从设备上下文中获取颜色信息? pywin32返回监视器句柄,一个设备上下文和一个4元组与监视器的边界区域,但设备上下文似乎是0 ...假设它是正确的,但我怎么从HDC获得颜色深度? – Claudiu 2010-11-17 05:40:05