void CMy2Dlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
UpdateData();
COutputDlg output;
output.DoModal();
double c=a/b;
CString str;
str.Format(_T("%.3lf"),c);
output.GetDlgItem(IDC_EDIT1)->SetWindowTextW(str);
}
a,b为一个对话框(IDD_MY2_DIALOG)中两个编辑框控件相关联的double型变量,IDC_EDIT1为另外一个对话框中的编辑框控件,运行之后点Button1弹出了新的对话框,但其中的编辑框控件没有显示???

解决方案 »

  1.   

    你这是模态对话框,只有OutputDlg结束后,才执行DoModal();以后的语句。试试,用create(),创建非模态对话框。在output.GetDlgItem(IDC_EDIT1)->SetWindowTextW(str);后面,加上output.show();具体函数记不太清了,你可以看看非模态对话框的创建。
      

  2.   

    lz这样写程序还不挂???DoModal函数返回后,对话框关联的窗口被销毁了,对话框的m_hWnd为NULL,后面的所有与窗口句柄相关的操作也就错了。
    lz可以这样写,修改COutputDlg类的构造函数,加个CString strText参数,该类中也增加一个CString m_str成员变量来接受传递进来的参数
    void CMy2Dlg::OnBnClickedButton1()
    {
    // TODO: 在此添加控件通知处理程序代码
    UpdateData();
    double c=a/b;
    CString str;
    str.Format(_T("%.3lf"),c);COutputDlg output(str);
    output.DoModal();
    }COutputDlg类中的构造函数:
    COutputDlg::COutputDlg(CString strText, CWnd* pParent /*=NULL*/) : CDialog(COutputDlg::IDD, pParent)
    {
    m_strText = strText; // m_strText为COutputDlg类的CString类型的成员函数,接受传递的参数
    .....}// 在对话框的OnInitDialog函数中初始化编辑框的值
    BOOL COutputDlg::OnInitDialog()
    {
    ....
    SetDlgItemText(IDC_EDIT1, m_strText);//这里设置编辑框的值
    ...
    }