VC++获取屏幕大小第三篇 物理大小GetDeviceCaps 下

    本篇文章(MoreWindows)将获取屏幕的物理大小后计算屏幕对角线长度并换算成英寸。这样可以方便大家查看自己电脑屏幕是多少英寸的。为了更方便大家使用,本文将提供电脑屏幕大小查看器下载(配源码)下载地址是(欢迎大家试用):http://download.csdn.net/detail/morewindows/5106270

 

    通常大家在表示电脑、电视、手机等电子产品的屏幕大小时会使用英寸这一长度单位来描述。要注意的一点时,英寸在描述电脑、电视、手机等电子产品的屏幕大小时是指屏幕的对角线长度。

    英寸(inch,缩写为in.)在荷兰语中的本意是大拇指,一英寸就是一节大拇指的长度。当然人的大拇指的长度也是长短不一的。14世纪时,英皇爱德华二世颁布了“标准合法英寸”。其规定为:从大麦穗中间选择三粒最大的麦粒并依次排成一行的长度就是一英寸。

英寸与毫米的换算关系为:

          1英寸 = 25.4毫米

          1毫米 = 0.03937英寸

http://blog.csdn.net/morewindows/article/details/8610891

 

    根据这一换算公式,可以改写下《VC++获取屏幕大小第二篇物理大小GetDeviceCaps 》中的代码,让其直接计算出屏幕是多少英寸的。改写后的代码如下:

// 获取屏幕大小 物理大小
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <windows.h>
int main()
{
	printf("    获取屏幕大小 物理大小\n");        
	printf(" -- By MoreWindows( http://blog.csdn.net/MoreWindows ) --\n\n");   
	
	int nScreenWidth, nScreenHeight;
	HDC hdcScreen = GetDC(NULL);   //获取屏幕的HDC
	nScreenWidth = GetDeviceCaps(hdcScreen, HORZSIZE);
	nScreenHeight = GetDeviceCaps(hdcScreen, VERTSIZE);
	
	printf("屏幕大小(毫米) 宽:%d 高:%d\n", nScreenWidth, nScreenHeight);
	printf("    下面将屏幕大小由毫米换算到英寸\n");
	const double MILLIMETRE_TO_INCH = 0.03937;
	double fDiagonalLen = sqrt(nScreenHeight * nScreenHeight + nScreenWidth * nScreenWidth);
	printf("屏幕对角线长为:%.2lf毫米 约 %.2lf英寸\n", fDiagonalLen, fDiagonalLen * MILLIMETRE_TO_INCH);
	getch();
	return 0;
}

运行结果如下:

 VC++获取屏幕大小第三篇 物理大小GetDeviceCaps 下_第1张图片

呵呵,本人笔记本的屏幕大小是13.64英寸即商家所称的14英寸笔记本。

 

 

根据这份代码可以发布个小程序,供其它人用来查看电脑屏幕大小。可惜由于GetDeviceCaps函数的限制,在Win7系统下该程序检测结果不准确,WinXP系统下基本上可以正确运行。

电脑屏幕大小查看器的下载地址为(附源码):http://download.csdn.net/detail/morewindows/5106270

 

 

转载请标明出处,原文地址:http://blog.csdn.net/morewindows/article/details/8610891

欢迎关注微博:http://weibo.com/MoreWindows


 

你可能感兴趣的:(英寸,Windows编程,电脑屏幕,物理大小)