首頁 >後端開發 >C++ >如何使用WinAPI取得螢幕解析度?

如何使用WinAPI取得螢幕解析度?

Susan Sarandon
Susan Sarandon原創
2024-10-27 04:04:30223瀏覽

How Can I Get the Screen Resolution Using WinAPI?

使用 WinAPI 取得螢幕解析度

在 WinAPI 中,存在多個函數來決定目前螢幕解析度。適當的選擇取決於具體要求。

檢索顯示大小

  • 主監視器:使用GetSystemMetrics(SM_CXSCREEN) 和GetSystemMeCREs(SystemMe.高度。
  • 所有顯示器: GetSystemMetrics(SM_CXVIRTUALSCREEN) 和 GetSystemMetrics(SM_CYVIRTUALSCREEN) 提供所有連接顯示器的組合解析度。
  • 工作區域: SystemParametersInfo(SPI_GETWORKAREA) 傳回主監視器上工作區域的分辨率,不包括工具列和其他控制項佔用的區域。

特定監視器解析度

要取得特定監視器的分辨率,請使用 GetMonitorInfo。此函數需要監視器的句柄,可以使用 MonitorFromWindow 取得該句柄。

進階顯示資訊

對於低階存取或修改顯示設置,WinAPI 提供函數,例如 EnumDisplayDevices、EnumDisplaySettings 和 ChangeDisplaySettings。這些允許檢索刷新率、顏色深度和修改顯示設定。

注意: 重要的是要考慮到顯示器可能並不總是從 (0, 0) 座標開始。若要正確定位窗口,請使用 MonitorFromWindow 確定其所在的監視器,然後呼叫 GetMonitorInfo 以取得監視器的解析度和偏移量。

以上是如何使用WinAPI取得螢幕解析度?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn