如果用OnOK()把一个对话框关闭了,还可以对它的数据成员进行操作吗?解决方案

如果用OnOK()把一个对话框关闭了,还可以对它的数据成员进行操作吗?
如果用OnOK()把一个对话框关闭了,还可以对它的数据成员进行操作吗?
代码有点长,不必全看完,重点在于,最后部分OnOk后还能不能m_pdset->Close()
case "医生":
  SQL="select * from DoctorInfo where ID='"+m_CsID+"'"AND Password='"+m_CsPassword+"'";
m_pdSet=&(pDoc->m_doctorInfoSet);
m_pdSet->Open(AFX_DB_USE_DEFAULT_TYPE,SQL,readOnly);
if(m_pdSet->IsEOF())
  AfxMessageBox("查无此人,请确认后输入!");
else
{
CExamineDlg dlg;
  str=m_pdSet->m_Profession;
dlg.m_Combo_Depart.SelectString(0,str);//
dlg.m_CsDName=m_pdSet->m_Name;
m_pSet=&(pDoc->m_caseHistorySet);
SQL="select * from CaseHistory where Depart='"+str+"'AND Date='"+tm+"'";
m_pSet->Open(AFX_DB_USE_DEFAULT_TYPE,SQL,readOnly);
while(m_pSet->m_Description&&!m_pchSet->IsEOF())
{
m_pSet->MoveNext();
}
if(m_pSet->IsEOF())//当有病人来的时候,按next键,重新查询
dlg.DoModal();
else
{
str=dlg.m_CsID=m_pSet->m_ID;
  SQL="select * from PatientBInfoSet where ID='"+str+"'";
  m_ppSet->Open(AFX_DB_USE_DEFAULT_TYPE,SQL,readOnly);
dlg.m_CsName=m_pSet->m_Name;
dlg.m_CsSex=m_ppSet->m_Sex;
dlg.m_nAge=m_ppSet->m_Age;
dlg.m_CsAllergy=m_ppSet->m_AllergyHistory;
m_ppSet->Close();//
dlg.m_pset=m_pSet;//
dlg.DoModal();
}
Cdioalog::OnOK();
}
m_pdset->Close();//casehistory暂时不关,后面用时可以不重新查
break;
重点在于,OnOk后还能不能m_pdset->Close()

------解决方案--------------------
void CDialog::OnOK()
{
if (!UpdateData(TRUE))
{
TRACE0("UpdateData failed during dialog termination.\n");
// the UpdateData routine will set focus to correct item
return;
}
EndDialog(IDOK);
}
------解决方案--------------------
可以获得成员变量,但是控件已经销毁。可以把需要提取的值放在成员变量里
------解决方案--------------------
在空间销毁前才可以获得成员变量,楼上正解
------解决方案--------------------
endDialog 和 OnOk();一回事吧
------解决方案--------------------
探讨

那除控件以外的成员变量还可以用吗

------解决方案--------------------
探讨
是不是会调用对话框的析构函数?

------解决方案--------------------
探讨
是不是会调用对话框的析构函数?