欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > c/c++ >内容正文

c/c++

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

发布时间:2025/3/12 c/c++ 27 豆豆
生活随笔 收集整理的这篇文章主要介绍了 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 》中的代码,让其直接计算出屏幕是多少英寸的。改写后的代码如下:

[cpp] view plaincopy print?
  • // 获取屏幕大小 物理大小  
  • #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;  
  • }  
  • // 获取屏幕大小 物理大小 #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); //获取屏幕的HDCnScreenWidth = 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; }

    运行结果如下:

     

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

     

     

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

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

     

     

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

    总结

    以上是生活随笔为你收集整理的VC++获取屏幕大小第三篇 物理大小GetDeviceCaps 下的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。