zoukankan      html  css  js  c++  java
  • VC比例放大缩小

        CRect rect;
        ::GetWindowRect(m_hWnd, rect);
        ScreenToClient(rect);
        m_nDlgWidth = rect.right - rect.left;
        m_nDlgHeight = rect.bottom - rect.top;
        //计算分辨率
        m_nWidth = GetSystemMetrics(SM_CXSCREEN);
        m_nHeight = GetSystemMetrics(SM_CYSCREEN);
        //计算放大倍数
        m_Multiple_width = float(m_nWidth)/float(m_nDlgWidth);
        m_Multiple_height = float(m_nHeight)/float(m_nDlgHeight);
    
        change_flag = TRUE;//判断onSize执行时OnInitDlg是否已执行
        MoveWindow(0,0,m_nWidth,m_nHeight, TRUE);
    void CTDemoDlg::OnSize(UINT nType, int cx, int cy) 
    {
        CDialog::OnSize(nType, cx, cy);
        
        if (change_flag)
        {
            
            ReSize(IDC_BUTTON);
            ReSize(IDOK);
            ReSize(IDCANCEL);
            //恢复放大倍数,并保存
            m_Multiple_height = float(1)/m_Multiple_height;
            m_Multiple_width = float(1)/m_Multiple_width;
        }
        
    }
    
    void CTDemoDlg::ReSize(int nID)
    {
        CRect rect;
        GetDlgItem(nID)->GetWindowRect(rect);
        ScreenToClient(rect);
        //计算控件左上角点
        CPoint OldTLPoint, TLPoint;
        OldTLPoint = rect.TopLeft();
        TLPoint.x = long(OldTLPoint.x*m_Multiple_width);
        TLPoint.y = long(OldTLPoint.y*m_Multiple_height);
        //计算控件右下角点
        CPoint OldBRPoint,BRPoint;
        OldBRPoint = rect.BottomRight();
        BRPoint.x = long(OldBRPoint.x*m_Multiple_width);
        BRPoint.y = long(OldBRPoint.y*m_Multiple_height);
        //移动控件到新矩形
        rect.SetRect(TLPoint,BRPoint);
        GetDlgItem(nID)->MoveWindow(rect, TRUE);
    }
  • 相关阅读:
    CentOS7 Install Consul
    CentOS6 Install kafka
    CentOS7 Install Shipyard
    zabbix_sender
    python mail
    CentOS6.8 RPM包安装快速zabbix22
    python与shell通过微信企业号发送消息
    zabbix监控之grafana
    linux查看进程(java)启动时间
    (ubuntu)安装配置jenkins(新版)
  • 原文地址:https://www.cnblogs.com/klxll/p/3435504.html
Copyright © 2011-2022 走看看