zoukankan      html  css  js  c++  java
  • C++语言 访问对话框中的控件

     
    //创建一个基于对话框的工程,向对话框中添加静态文本,编辑框和组合框控件

    CComboBox m_Symbo;
    CEdit m_SecOpt;
    CEdit m_Result;
    CEdit m_FirstOpt;

    enum Symbo {PLUS, SUB, MUL,DIV};
    template <class Type>
    class CCalc
    {
    public:
        Type Calc(Type &refFirstOpt, Type &refSecOpt, Symbo Opt)
        {
            switch (Opt)
            {
            case PLUS:
                return refFirstOpt + refSecOpt;
            case SUB:
                return refFirstOpt - refSecOpt;
            case MUL:
                return refFirstOpt * refSecOpt;
            case DIV:
                return refFirstOpt / refSecOpt;
            }
        }
    };
    
    
    void CCalcDlg::OnCalc() 
    {
        // TODO: Add your control notification handler code here
        CString szFirstOpt, szSecOpt, szSymbo, szResult;
        m_Symbo.GetWindowText(szSymbo);
        if(!szSymbo.IsEmpty())
        {
            m_FirstOpt.GetWindowText(szFirstOpt);
            m_SecOpt.GetWindowText(szSecOpt);
    
            double dbFirst = atof(szFirstOpt.GetBuffer(0));
            szFirstOpt.ReleaseBuffer(0);
            
            double dbSec = atof(szSecOpt.GetBuffer(0));
            szSecOpt.ReleaseBuffer(0);
            
    
            Symbo opt;
            if(szSymbo == "+")
                opt = PLUS;
            else if(szSymbo == "-")
                opt = SUB;
            else if(szSymbo == "*")
                opt = MUL;
            else if(szSymbo == "/")
                opt = DIV;
    
            CCalc<double> CalcObj;
            double dbRet = CalcObj.Calc(dbFirst, dbSec, opt);
            szResult.Format("%-8.2f", dbRet);
            m_Result.SetWindowText(szResult);
            szResult.ReleaseBuffer(0);
                
        }
    
        
    }
     //利用控件ID获取控件窗口指针
    CString szFirstOpt, szSecOpt, szSymbo, szResult;
    CComboBox *pSymbo = (CComboBox*)GetDlgItem(IDC_SYMBO);
    pSymbo->GetWindowText(szSymbo);
    if(!szSymbo.IsEmpty())
    {
        CEdit *pFirstOpt = (CEdit*)GetDlgItem(IDC_FIRSTOPT);
        pFirstOpt->GetWindowText(szFirstOpt);
        CEdit *pSecOpt = (CEdit*)GetDlgItem(IDC_SECOPT);
        pSecOpt->GetWindowText(szSecOpt);
        double dbFirst = atof(szFirstOpt.GetBuffer(0));
        szFirst.ReleaseBuffer(0);
        double dbSec = atof(szSecOpt.GetBuffer(0));
        szSecOpt.ReleaseBuffer(0));
        Symbo opt;
        if(szSymbo == "+")
            opt = PLUS;
        else if(szSymbo == "-")
            opt = SUB;
        else if(szSymbo == "*")
            opt = MUL;
        else
            opt = DIV;
    
        CCalc<double> CalcObj;
        double dbRet = CalcObj.Calc(dbFirst, dbSec, opt);
        CEdit *pResult = (CEdit*)GetDlgItem(IDC_RET);
        szResult.Format("%-8.2f", dbRet);
        pResult->SetWindowText(szResult);
        szResult.ReleaseBuffer(0);
    
    }
     
     
    学习笔记转摘于: 丝酷网 http://www.pythonschool.com/
  • 相关阅读:
    Python 42 mysql用户管理 、pymysql模块
    Python 41 多表查询 和 子查询
    Python 41 完整查询语句 和 一堆关键字
    Python 40 数据库-外键约束 、多对一与多对多的处理
    Python 40 数据库-约束
    Python 38 注册和修改密码
    eas之关于编码规则
    eas之界面之间传递参数
    eas之获取集合
    eas之单据删除代码
  • 原文地址:https://www.cnblogs.com/pythonschool/p/2768184.html
Copyright © 2011-2022 走看看