MFC中怎样将一个对话框里的结构数据传递到另一个对话框里显示出来,标题讲不清,还是进来看吧。解决方案

MFC中怎样将一个对话框里的结构数据传递到另一个对话框里显示出来,标题讲不清,还是进来看吧。

这个学生信息对话框有个列表框,旁边有四个编辑框分别是姓名,班级,学号专业,列表框里有学生的名字,当我点击列表框里的名字时,旁边的编辑框就显示有关该学生的信息。
该结构在学生信息对话框的类里边。
数据结构:
public:


struct student 
{
CString studentclass;
CString name;
CString subject;
DWORD studentid;
};
初始化:由于我想让这个对话框弹出时就显示信息,我就放到这个对话框类的初始化函数里了。
BOOL CMessage::OnInitDialog() 
{
CDialog::OnInitDialog();

// TODO: Add extra initialization here


UpdateData(TRUE);
int nIndex=m_Listbx.AddString("张三");
student student1;
student1.name="张三";
student1.studentclass="软件1101";
student1.studentid=123456;
student1.subject="软件";
m_Listbx.SetItemDataPtr(nIndex,new student(student1));
   

int nIndex2=m_Listbx.AddString("李四");
student student2;
student2.name="李四";
student2.studentclass="软件1102";
student2.studentid=22657;
  student2.subject="软件工程";
  m_Listbx.SetItemDataPtr(nIndex2,new student(student2));


int nIndex3=m_Listbx.AddString("王二麻");
student student3;
student3.name="王二麻";
student3.studentclass="软件1101";
student3.studentid=34159;
  student3.subject="软件工程";
m_Listbx.SetItemDataPtr(nIndex3,new student(student3));


int nIndex4=m_Listbx.AddString("赵钱");
student student4;
student4.name="赵钱";
student4.studentclass="软件1101";

student4.studentid=12346;
  student4.subject="软件工程";
m_Listbx.SetItemDataPtr(nIndex4,new student(student4));


int nIndex5=m_Listbx.AddString("孙李");
student student5;
student5.name="孙李";
student5.studentclass="软件1102";
student5.studentid=341592;
  student5.subject="软件工程";
m_Listbx.SetItemDataPtr(nIndex5,new student(student4));

UpdateData(FALSE);



return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
当我在列表框里的学生名字选项改变时,旁边的编辑框也改变,所以另一个函数的代码:
void CMessage::OnSelchangeListname() 
{
// TODO: Add your control notification handler code here
int nIndex=m_Listbx.GetCurSel();
if (nIndex!=LB_ERR)
{
student * pstudent=(student *)m_Listbx.GetItemDataPtr(nIndex);
m_OutputName=pstudent->name;
m_OutputSubject=pstudent->subject;
m_OutputId=pstudent->studentid;
m_OutputClass=pstudent->studentclass;
UpdateData(FALSE);
}


}
然后我又做了一个修改对话框,有四个编辑框,分别是姓名,班级,学号,专业,一个应用按钮,一个确定按钮,功能是当我双击列表框的学生名字时,会弹出此修改对话框,此对话框会在编辑框分别显示当前该学生的信息,然后我在编辑框输入我想修改的信息,点击应用,然后确定,当我再次点击学生信息对话框的学生列表的每个学生名的字时,旁边的编辑框就会显示信息,当然如果我在修改对话框把信息修改的话,就会显示我修改后的信息。
接下来就是我的问题,我就卡在当弹出修改对话框时,修改对话框并没有显示当前学生信息。以下是代码。
我把代码放在学生信息对话框的列表框双击时的响应函数里了。
void CMessage::OnDblclkListname() 
{
// TODO: Add your control notification handler code here
CChange changedlg;
if (changedlg.DoModal()==IDOK)
{
  UpdateData();
int nIndex=m_Listbx.GetCurSel();
if (nIndex!=LB_ERR)
{
student * pstudent=(student *)m_Listbx.GetItemDataPtr(nIndex);
changedlg.m_ChgeName=pstudent->name;
changedlg.m_ChgeSubject=pstudent->subject;
changedlg.m_ChgeId=pstudent->studentid;
changedlg.m_ChgeClass=pstudent->studentclass;
   
UpdateData(FALSE);
}

 

}
请问到底是什么问题,是我的结构错了,还是代码的位置错了,还有我在修改对话框那,怎样将我修改后的数据应用到学生信息结构上也没有思路,
请各位朋友,学长,门指点一下小弟。

------解决方案--------------------