如何在C++中获得屏幕分辨率?

Nat*_*ver 30 c++ windows winapi screen-resolution

可能重复:
如何从hWnd获取显示器屏幕分辨率?

有没有办法在C++中获得屏幕分辨率?
我搜索过MSDN,但没有运气.我发现最接近的是ChangeDisplaySettingsEx(),但似乎没有办法只返回res而不更改它.

ebo*_*oix 54

#include "wtypes.h"
#include <iostream>
using namespace std;

// Get the horizontal and vertical screen sizes in pixel
void GetDesktopResolution(int& horizontal, int& vertical)
{
   RECT desktop;
   // Get a handle to the desktop window
   const HWND hDesktop = GetDesktopWindow();
   // Get the size of screen to the variable desktop
   GetWindowRect(hDesktop, &desktop);
   // The top left corner will have coordinates (0,0)
   // and the bottom right corner will have coordinates
   // (horizontal, vertical)
   horizontal = desktop.right;
   vertical = desktop.bottom;
}

int main()
{       
   int horizontal = 0;
   int vertical = 0;
   GetDesktopResolution(horizontal, vertical);
   cout << horizontal << '\n' << vertical << '\n';
   return 0;
}
Run Code Online (Sandbox Code Playgroud)

资料来源:http://cppkid.wordpress.com/2009/01/07/how-to-get-the-screen-resolution-in-pixels/

  • 这将为您提供没有任务栏的桌面**的大小** (3认同)
  • 对于 Windows 10 中分辨率为 3840 x 2160 的 4K 屏幕,此方法返回 1536 x 864。有人可以解释一下吗? (3认同)
  • 这适用于多个显示器吗? (2认同)