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);
    }

  • 相关阅读:
    TP之Model(select(),add())
    TP之空操作及View模块
    ThinkPHP之初识
    smarty引擎之练习
    领先环境HTML
    php流程
    分页
    弹窗
    邮箱项目
    TP框架修改操作
  • 原文地址:https://www.cnblogs.com/aoyihuashao/p/1708100.html
Copyright © 2011-2022 走看看