Search code examples
c++windowswinapiscreen-resolution

How to get screen resolution in C++?


Possible Duplicate:
How to get the Monitor Screen Resolution from an hWnd?

Is there a way to get the screen resolution in C++?
I have searched MSDN but with no luck. The closest thing I found was ChangeDisplaySettingsEx() but that doesn't seem to have a way to just return the res without changing it.


Solution

  • #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;
    }
    

    Source: http://cppkid.wordpress.com/2009/01/07/how-to-get-the-screen-resolution-in-pixels/