//
ScreenDPI.cpp : Defines the entry point for the console application.
//
#include " stdafx.h "
#include <iostream>
#include <windows.h>
#include <math.h>
using namespace std;
// 1毫米=0.039370078740157英寸
#define INCH 0.03937
float GetDPI()
{
HDC hdcScreen;
hdcScreen = CreateDC(L " DISPLAY ", NULL, NULL, NULL);
int iX = GetDeviceCaps(hdcScreen, HORZRES); // pixel
int iY = GetDeviceCaps(hdcScreen, VERTRES); // pixel
int iPhsX = GetDeviceCaps(hdcScreen, HORZSIZE); // mm
int iPhsY = GetDeviceCaps(hdcScreen, VERTSIZE); // mm
if (NULL != hdcScreen)
{
DeleteDC(hdcScreen);
}
float iTemp = iPhsX * iPhsX + iPhsY * iPhsY;
float fInch = sqrt(iTemp) * INCH ;
iTemp = iX * iX + iY * iY;
float fPixel = sqrt(iTemp);
float iDPI = fPixel / fInch; // dpi pixel/inch
cout<< " DPI: "<<iDPI<<endl;
return iDPI;
}
int _tmain( int argc, _TCHAR* argv[])
{
GetDPI();
system( " pause ");
return 0;
}
//
#include " stdafx.h "
#include <iostream>
#include <windows.h>
#include <math.h>
using namespace std;
// 1毫米=0.039370078740157英寸
#define INCH 0.03937
float GetDPI()
{
HDC hdcScreen;
hdcScreen = CreateDC(L " DISPLAY ", NULL, NULL, NULL);
int iX = GetDeviceCaps(hdcScreen, HORZRES); // pixel
int iY = GetDeviceCaps(hdcScreen, VERTRES); // pixel
int iPhsX = GetDeviceCaps(hdcScreen, HORZSIZE); // mm
int iPhsY = GetDeviceCaps(hdcScreen, VERTSIZE); // mm
if (NULL != hdcScreen)
{
DeleteDC(hdcScreen);
}
float iTemp = iPhsX * iPhsX + iPhsY * iPhsY;
float fInch = sqrt(iTemp) * INCH ;
iTemp = iX * iX + iY * iY;
float fPixel = sqrt(iTemp);
float iDPI = fPixel / fInch; // dpi pixel/inch
cout<< " DPI: "<<iDPI<<endl;
return iDPI;
}
int _tmain( int argc, _TCHAR* argv[])
{
GetDPI();
system( " pause ");
return 0;
}