// 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;
}