第七节 对话框之间的数据传递

来源:互联网 发布:想开农村淘宝怎么办理 编辑:程序博客网 时间:2024/05/19 15:20

第七节 对话框之间的数据传递

从上一节讲到的模态对话框工程继续,在主对话框和模态对话框都画一个Edit Control ,要实现的目标是,在主对话框输入的信息会显示到模态对话框上,在模态对话框输入的信息,关闭后又显示在主对话框上.

用4种方法来实现,分别是

①、全局变量法:
②、主对话框法:AfxGetMainWnd();
③、父窗口法:GetParent();
④、成员变量、成员函数法;

---------------------------------------------------------------------

①、全局变量法:

1->在主对话框类 CMFCDlg 声明一个全局变量 CString strText;来起到桥梁的作用

2->在模态对话框还没弹出来之前 取出主对话框的Edit Control信息 具体操作

GetDlgItemText(IDC_MAIN_EDIT,strText);

3->点击建立模态对话框 进入CMydialog设置,在这之前先进入Mydialog.h 声明下extren CString strText来标明这是一个全局变量

4->在模态对话框创立时进入的 BOOL CMydialog::OnInitDialog() 中 设置Edit Control 具体操作

SetDlgItemText(IDC_SET_EDIT,strText);

5->在模态对话框点击OK的响应函数获取 模态对话框Edit Control信息

GetDlgItemText(IDC_SET_EDIT,strText);

6->在主对话框重新显示之前 在  BOOL C主对话框Dlg::OnInitDialog() 中 设置Edit Control 具体操作

SetDlgItemText(IDC_MAIN_EDIT,strText);

------------------------------------------------------------------------------------------

②、主对话框法:AfxGetMainWnd();

1->在模态对话框创立时进入的 BOOL CMydialog::OnInitDialog() 中 获取主对话框指针

CString strText;
 CMFCTestDlg *pMainWnd = (CMFCTestDlg *)AfxGetMainWnd();
2->取得主对话框Edit Control信息 

pMainWnd->GetDlgItemText(IDC_MAIN_EDIT, strText);

3->设置当前模态对话框Edit Control信息
 SetDlgItemText(IDC_SET_EDIT, strText);

4->对模态对话框的OK消息响应void CMyDialog::OnBnClickedOk()   加入获取Edit Control信息

CString str;
GetDlgItemText(IDC_SET_EDIT, str);

5->设置主对话框Edit Control
CMFCTestDlg *pWnd = (CMFCTestDlg *)AfxGetMainWnd();

pWnd->SetDlgItemText(IDC_MAIN_EDIT, str);

-----------------------------------------------------------------------------

③、父窗口法:GetParent();

1->在模态对话框创立时进入的 BOOL CMydialog::OnInitDialog() 中 获取主对话框指针

CString strText;
CMFCTestDlg *pParent = (CMFCTestDlg *)GetParent;

2->取得主对话框Edit Control信息

pParent->GetDlgItemText(IDC_MAIN_EDIT, strText);

3->设置当前模态对话框Edit Control信息
SetDlgItemText(IDC_SET_EDIT, strText);

4->对模态对话框的OK消息响应void CMyDialog::OnBnClickedOk() 加入获取Edit Control信息

CString str;
GetDlgItemText(IDC_SET_EDIT, str);

5->设置主对话框Edit Control
CMFCTestDlg *pP = (CMFCTestDlg *)GetParent;

pP->SetDlgItemText(IDC_MAIN_EDIT, str);

④、成员变量、成员函数法;

----------------------------------------------------------------------

1->在模态对话框添加public 成员变量CWND m_hwnd;并赋NULL

2->在主对话框定义CMydialog dlg;后调用dlg.m_hwnd= this;获取主对话框指针

3->在模态对话框创立时进入的 BOOL CMydialog::OnInitDialog() 中获取主对话框Edit 信息并且设置为当前

CString str;
m_pWnd->GetDlgItemText(IDC_MAIN_EDIT, str);

SetDlgItemText(IDC_SET_EDIT, str);

4->对模态对话框的OK消息响应void CMyDialog::OnBnClickedOk() 加入设置主对话框Edit Control信息

CString str;
 GetDlgItemText(IDC_SET_EDIT, str);
 m_pWnd->SetDlgItemText(IDC_MAIN_EDIT, str);