原文地址:从对话框中传递参数到视图类作者:多彩
这个看似简单的问题确实让我郁闷了好几天,但想出来居然只用了一分钟不到。看来还是很有纪念价值的。
假设在视图类的一个需要传递参数的函数中定义对话框的对象
CDlgGDHDCS gddlg;
然后声明与从对话框中传递过来的参数相同类型的临时变量,用于接收数据
CString temp_gdkd,temp_gdpjws,temp_fpjd,temp_mhks,temp_mlks;
然后调用自己写的两个函数用于从对话框中取参数,再传递给临时变量。这样就可以将对话框中的当前数据传递过来了。
//CXXXView 的一个成员函数中
if(gddlg.DoModal()==IDOK)
{
//从对话框中获得更改的数据
gddlg.GetData (temp_gdkd,temp_gdpjws,temp_fpjd,temp_mhks,temp_mlks);
//设置对话框对象的新参数
gddlg.SetData(temp_gdkd,temp_gdpjws,temp_fpjd,temp_mhks,temp_mlks);
....
}
//==========//========//=========//==============//===========//
//对话框函数
void CDlgGDHDCS::GetData(CString &gdkd, CString &gdpjws, CString &fpjd, CString &mhks, CString &mlks)
{
gdkd=m_wndcombo_gdkd;
gdpjws=m_wndcombo_gdpjws;
fpjd=m_wndcombo_fpjd;
mhks=m_wndcombo_mhks;
mlks=m_wndcombo_mlks;
}
void CDlgGDHDCS::SetData(CString gdkd, CString gdpjws, CString fpjd, CString mhks, CString mlks)
{
m_wndcombo_gdkd=gdkd;
m_wndcombo_gdpjws=gdpjws;
m_wndcombo_fpjd=fpjd;
m_wndcombo_mhks=mhks;
m_wndcombo_mlks=mlks;
}