zoukankan      html  css  js  c++  java
  • 讨论已久的获取显示器物理尺寸的方法

    好像在CSDN上看过很多次讨论的都没结果,昨天看书偶有感悟。如果那个......,就当......吧。

    原理:

    字符(串)长度像素/字符串长度厘米 = 显示器长宽像素/显示器长宽厘米。

    但在不同分辨率下,计算结果会有些偏差,应该是获取的字符串长度厘米有偏差,因为这个只能精确到0.01毫米,在标准分辨率下获取的比较准确。\(^o^)/~

    void CWindowsDisignDlg::OnButton1()
    {
        CClientDC dc(this);
        CString str = "0000000000000000000000000";
        /*
        TEXTMETRIC me;
        dc.GetTextMetrics(&me);
        int i = me.tmHeight;
        dc.SetMapMode(MM_HIMETRIC);
        dc.GetTextMetrics(&me);
        int j = (int)me.tmHeight;
        */
        CSize size = dc.GetTextExtent(str);
        int i = size.cx;

        dc.SetMapMode(MM_LOMETRIC);
        size = dc.GetTextExtent(str);
        int j = size.cx;

        int length_mix = GetSystemMetrics(SM_CXSCREEN);
        int height_mix = GetSystemMetrics(SM_CYSCREEN);
        double height = 1.0*j*height_mix/i/1000;
        double length = 1.0*j*length_mix/i/1000;
        CString message;
        message.Format("i=%d j=%d\n%lfCM * %lfCM",i,j,length,height);
        MessageBox(message);
    }

  • 相关阅读:
    Vmware安装Ubuntu ==> 连网成功
    在 ns3.25中添加 plc(电力线载波) 模块
    Ubuntu12.04下安ns3.29及Ubuntu换源方法
    微信支付小程序版
    微信小程序打开外部链接
    linux下安装Mongodb
    延迟执行+异步 之代码分析1
    Vue入门
    实验一
    实验二
  • 原文地址:https://www.cnblogs.com/aoyihuashao/p/1708100.html
Copyright © 2011-2022 走看看