在Petzold的书中写用GetDeviceCaps(hdc,LOGPIXELSX)得到屏幕DPI(dot per inch)计算真实大小,但我实际操作了发现不对。在Windows系统中,我得到LOGPIXELSX为96,无论分辨率怎么调整都是96,也许是出于对文字显示的考虑。

我发现使用GetDeviceCaps(hdc,HORZSIZE)和GetDeviceCaps(hdc,VERTSIZE)来获取屏幕真实大小才是合理正确的,这两个返回值都是毫米为单位。我在1366*768下得到的HORZSIZE为320mm,我拿尺子量了确实是这么多。又改为800*600,由于比例不同屏幕两边有黑边,我又量了和获取的232mm一致。

由此可以得到DPM的概念,即dot per milimeter,每毫米像素,用像素长度除以DPM即得到毫米长度。反之,用毫米长度乘以DPM即得到对应的像素。

    DPMX = GetSystemMetrics(SM_CXSCREEN) / GetDeviceCaps(hdc, HORZSIZE);DPMY = GetSystemMetrics(SM_CYSCREEN) / GetDeviceCaps(hdc, VERTSIZE);

Windows API获取屏幕真实大小相关推荐

  1. HDFS剩余空间大小的Java接口,java api获取hdfs索引大小

    java api获取hdfs目录大小 1. hadoop fs -dus 的源码: public static void dus(String src,Configuration conf) thro ...

  2. android 获取navigationbar 高度,Android判断NavigationBar是否显示的方法(获取屏幕真实的高度)...

    有些时候,我们需要知道当前手机上是否显示了NavigationBar,也就是屏幕底部的虚拟按键. 比如截屏的时候,要获取屏幕的高度,必须包括NavigationBar的高度. 试过网上的多种方法,但是 ...

  3. Java获取屏幕真实分辨率

    这个问题大家可能不陌生,一搜索,就一堆答案,大多是一行代码搞定 Toolkit.getDefaultToolkit().getScreenSize(); 然而简单做了一个测试,效果如下,输出1707x ...

  4. Python获取屏幕分辨率大小

    获取屏幕大小有两种方法可以办到: 1.wxPython里的 2.win32api  1 # coding:gb2312  2 # wxApp.py   3 # author: aoogur  4 im ...

  5. C# 使用Windows API获取系统当前鼠标信息(图案)

    通过使用Windows API来获取当前鼠标的图案,不论是系统图片还是自定义图标都能够获取到,在这个示例中,为了方便测试,给Form1添加了一个KeyPress事件,在程序激活状态下,将鼠标移动到任意 ...

  6. Windows API 获取卷的基本信息

    通过对 Windows API 基础的一些学习,自己编写了一个可以读取卷的名称.文件系统类型.大小和剩余大小这些基本信息的小程序.程序很简单,却也受益匪浅. 定义的宏: #define BUFFSIZ ...

  7. windows api获取主板序列号

    微软官方给出api:GetSystemFirmwareTable GetSystemFirmwareTable function (sysinfoapi.h) - Win32 apps | Micro ...

  8. Windows API获取系统配置文件的配置参数

    在Windows平台下获取系统配置文件(如:System.ini)的配置参数. 系统配置文件System.ini的内容如下: [SYSTEM] ServiceIP = 10.128.11.99:600 ...

  9. 微信小程序 - 获取屏幕的大小

    使用wx.getSystemInfo(Object object)接口获取打开小程序的机型参数. 常用的有: screenWidth(屏幕宽度) screenHeight(屏幕高度) statusBa ...

最新文章

  1. 在ASP.NET MVC里对Web Page网页进行权限控制
  2. C++二维码相关库编译
  3. Java实现URL下载图片到本地
  4. 史上最易懂的 Kubernetes 儿童插图指南
  5. malloc,calloc和realloc函数
  6. 对象容器设计模式_容器对象模式。 一种新的测试模式。
  7. 【电设控制与图像训练题】【激光打靶】【openmv测试代码以及效果】
  8. Pycharm下安装Tensorflow
  9. 开发经验分享_01_遇到问题三步走(思路+实战)
  10. qt web混合编程_VS2017+QT 混合编程-在VS控制台程序配置QT
  11. Python数据结构与算法笔记(一):时间复杂度与空间复杂度
  12. IntelliJ IDEA下SVN的配置及使用说明
  13. Shiro完整教程, 附带各种配置
  14. PQ分区出错,由Ghost来补救的办法(转)
  15. 制造业OEER语言数据挖掘之人工神经网络探索
  16. git 版本回退之关于git reset --hard 和 --soft区别
  17. (CRON) info (No MTA installed, discarding output)” error in the syslog
  18. 联想台式电脑硬盘分区失败数据恢复
  19. 京东七夕报名要注意什么?四川万顿思
  20. 不能共情你还当什么领导

热门文章

  1. 256 量子比特,QuEra这家创业公司再创新绩
  2. 腾讯微博10年数据对比,看看过去的辉煌,曾经的全球第一微博
  3. 5G,一场商业噱头 or 一次技术革命?
  4. 完全用linux办公(一)
  5. tableau自定义形状功能制作超市盈利情况表
  6. mysql百度云_MySQL从入门到精通视频教程 (46集)
  7. MITSUMI美上美(SIQ-02FVC3)拨盘编码器硬件连接及stm32f103zet6正交解码测试
  8. 难道要让中国世代的人都去充当廉价的劳动力吗?
  9. springboot校园交友网站1.0(Springboot+Mybatis+thymeleaf+人脸识别+语音助手+百度地图)
  10. Oracle中游标(Cursor)介绍和使用