1、首先是创建子对话框。控件设置好,子对话框类也添加好巴拉巴拉的
CString strPath;
GetDlgItemText(IDC_EDIT_PATH, strPath);//这个用来将控件的值赋给变量的一种方法 还有个SetDlgItemText
CDlgModifyTick dmtdlg( AfxGetMainWnd(),tick); //创建子对话框对象,传入父对话框的句柄以及分笔数据对象
UINT nID = dmtdlg.DoModal(); //切换到子对话框,DoModal这个函数用来显示对话框的意思
if(nID == IDOK) //判断子对话框有没有按下确认键
{
if(MessageBox("确认修改数据?","确认窗口",MB_OKCANCEL)==IDOK)
{
UpdateData(FALSE);//对话框编辑框里面的数据向变量更新
}
2、子对话框里面的变量值传递给父对话框:方法是父对话框类里面建立一个static静态成员函数,然后在子对话框里面调用,把值传过去。
比如。在父对话框.h文件:static void GetDlgDataLine(CString Open,CString High,CString Low,CString Close,CString Money,CString Hold,CString Settle,CString Volumn);
然后在.cpp文件:
void WTSDataViewerDlg::GetDlgDataLine(CString Open,CString High,CString Low,CString Close,CString Money,CString Hold,CString Settle,CString Volumn)
{
n_LOpen=Open;
n_LClose=Close;
n_LHigh=High;
n_LLow=Low;
n_LMoney=Money;
n_LVolumn=Volumn;
n_LHold=Hold;
n_LSettle=Settle;//n_LOpen等等都是自己定义的全局变量}
最后在子对话框.cpp文件中
void CDlgModifyLine::OnBnClickedOkLine()
{
UpdateData(TRUE);//变量的值向控件更新
// 调用函数,将控件变量值传递进去
WTSDataViewerDlg::GetDlgDataLine(m_LineOpen,m_LineHign,m_LineLow,m_LineClose,m_LineMoney,m_LineHold,m_LineSettle,m_LineVolumn);
CDialog::OnOK();
}