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

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

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

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

          1英寸 = 25.4毫米

          1毫米 = 0.03937英寸

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

 

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

[cpp]  view plain  copy
  1. // 获取屏幕大小 物理大小  
  2. #include <stdio.h>  
  3. #include <conio.h>  
  4. #include <math.h>  
  5. #include <windows.h>  
  6. int main()  
  7. {  
  8.     printf("    获取屏幕大小 物理大小\n");          
  9.     printf(" -- By MoreWindows( http://blog.csdn.net/MoreWindows ) --\n\n");     
  10.       
  11.     int nScreenWidth, nScreenHeight;  
  12.     HDC hdcScreen = GetDC(NULL);   //获取屏幕的HDC  
  13.     nScreenWidth = GetDeviceCaps(hdcScreen, HORZSIZE);  
  14.     nScreenHeight = GetDeviceCaps(hdcScreen, VERTSIZE);  
  15.       
  16.     printf("屏幕大小(毫米) 宽:%d 高:%d\n", nScreenWidth, nScreenHeight);  
  17.     printf("    下面将屏幕大小由毫米换算到英寸\n");  
  18.     const double MILLIMETRE_TO_INCH = 0.03937;  
  19.     double fDiagonalLen = sqrt(nScreenHeight * nScreenHeight + nScreenWidth * nScreenWidth);  
  20.     printf("屏幕对角线长为:%.2lf毫米 约 %.2lf英寸\n", fDiagonalLen, fDiagonalLen * MILLIMETRE_TO_INCH);  
  21.     getch();  
  22.     return 0;  
  23. }  

运行结果如下:

 

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

 

 

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值