首先在主对话框中读取一个二进制文件,把读到的数据赋给了一些变量,然后打开另一个对话框,希望这个对话框一打开就能在其编辑框中显示的刚刚读到的数据,而不是定义其成员变量时所赋给的初始值。我现在只能在后一个对话框中加一个控件,通过点击这个控件实现值得传递,不知道怎么一打开这个对话框就可以显示给变了的数值。请问该怎么实现?谢谢大家了。

解决方案 »

  1.   

    我就是不知道该在第二个对话框的什么地方加代码使对话框打开的同时就能实现数据的更新,我只知道用OnInitDialog()函数可以,但是我一用它,就把另一个对话框中接收二进制文件的变量又给初始化了,结果数据还是穿不过来。
      

  2.   

    首先,做一个全局变量来保存将要传递的值;然后,在后一个窗体的OnInitDialog函数内为控件变量赋值,当然最后别忘了使用UpdateData刷新控件变量的值到控件。
      

  3.   

    首先,不要再OnInitDialog里改变你对话框的值
    然后,通过模态方式调用对话框
    例如
    CYourDlg dlg;
    dlg.m_data=data;
    dlg.DoMadol();
      

  4.   


    // 主对话框
    void CMainDialog::OnBtnClick()
    {
        COtherDialog dlg;
        
        CString strText = "1234567890";
        dlg.SetEditText(strText);
        dlg.DoModal();
    }
    // 另一个对话框
    class COtherDialog : CDialog
    {
    ...
        CString m_strEditText;
        void SetEditText(CString strText)
        {
            m_strEditText = strText;
        }
    ...
    }void COtherDialog::OnInitDialog()
    {
        ...
        // m_edt是编辑框的变量
        m_edt.SetWindowText(strEditText);
        ...
    }