我正在试做一个如windows自带的科学计算器,建立了两个对话框类,CMy8023Dlg和TJ,就是一个计算器对话框和一个统计框。点击计算器框中的STA键即可弹出统计框。
    我怎么能把CM8023Dlg中的一个变量m_result付给TJ中的某个变量(如m_n与m_result是统一类型)呢?

解决方案 »

  1.   

    这个不难吧,还是类的概念你没有理解透而已!!我刚学的时候也遇到这样的问题
    这样就可以
    TJ.XXX=CM8023Dlg.m_result
      

  2.   

    既然是CMy8023Dlg中生成TJ,把m_n定义为public,直接tj.m_n=cmy8023dlg.m_result就可以了。
    也可以在tj中定义一个函数来赋值。
      

  3.   

    TJ.XXX=m_result
    之后再显示TJ对话框
      

  4.   

    可以通过发消息来实现。如果统计对话框是个模态对话框,那可以在统计对话框domodal前把变量传入
    然后显示例子如下:
    CDlg1::OnButton1()
    {
          CDlg2 dlg;
          dlg.m_str = "你好";
          dlg.m_bJudge = TRUE;
          dlg.DoModal();
    }//Dlg2.h
    public:
         CString m_str;
         BOOL m_bJudge;
    //Dlg2.cpp
    CDlg2::OnInitDialog()
    {
        if(m_bJudge)
            GetDlgItem(IDC_EDIT2)->SetWindowText(m_str);
    }
      

  5.   

    可以通过发消息来实现。如果统计对话框是个模态对话框,那可以在统计对话框domodal前把变量传入
    然后显示例子如下:
    CDlg1::OnButton1()
    {
          CDlg2 dlg;
          dlg.m_str = "你好";
          dlg.m_bJudge = TRUE;
          dlg.DoModal();
    }//Dlg2.h
    public:
         CString m_str;
         BOOL m_bJudge;
    //Dlg2.cpp
    CDlg2::OnInitDialog()
    {
        if(m_bJudge)
            GetDlgItem(IDC_EDIT2)->SetWindowText(m_str);
    }
      

  6.   

    将m_n声明成TJ的公有变量,就可以通过TJ对象访问m_n了
    CMy8023Dlg::OnButton()
    {
      TJ dlg;
      dlg.m_n = m_result;
      dlg.DoModal();
    }