2010-11-17 65 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