CScoreInfoDlg dlg;
dlg.m_strMessage=_T("为学号为 "+strNo+" 的学生添加成绩");
if(IDOK!=dlg.DoModal())
     return ;
ScoreInfo sc;
CString st;
st.Format("%s",dlg.m_fCZXT);
MessageBox(st);
**********************************
不知道什么原因,最后显示的是(null),好无语啊,完全不知道错误在哪?求教。

解决方案 »

  1.   

    dlg.m_strMessage=_T("为学号为 "+strNo+" 的学生添加成绩"); 这么写,编译器没报错么..?另外,dlg.m_fCZXT是什么?
      

  2.   

    CScoreInfoDlg dlg;
    dlg.m_strMessage=_T("为学号为 "+strNo+" 的学生添加成绩"); 
    为什么不写成
    CString str;
    str.Format("为学号为%d的学生添加成绩",strNo);
    dlg.m_strMessage = str;
    的形式呢?
    还有就是楼上说的dlg.m_fCZXT是什么?
    感觉不太复杂的东西,为什么要添加那么多华而不实的东西呢?
      

  3.   

    CScoreInfoDlg dlg;
    dlg.m_strMessage=_T("为学号为 "+strNo+" 的学生添加成绩"); 
    为什么不写成
    CString str;
    str.Format("为学号为%d的学生添加成绩",strNo);
    dlg.m_strMessage = str;
    的形式呢?
    还有就是楼上说的dlg.m_fCZXT是什么?
    感觉不太复杂的东西,为什么要添加那么多华而不实的东西呢?
      

  4.   

    if(IDOK!=dlg.DoModal())
       return ;
    //-----------是不是对话框注消了,所以没值给你访问了。
      

  5.   

    dlg.m_strMessage=_T("为学号为 "+strNo+" 的学生添加成绩"); 
    这个是对的。
    dlg.m_fCZXT,这个忘记说了,这是一个int型的变量,我自己已经找到了错误,是Format()函数用错了,里面应该是%f
      

  6.   

    额,不是华而不实,我只是截取了一个小片段,不好意思,dlg.m_fCZXT忘记介绍了。