- 注册时间
- 2021-4-16
- 最后登录
- 2024-7-7
- 在线时间
- 4 小时
编程入门
- 龙马币
- 32
|
一、全局变量法
1)先生成模态对话框。
主窗口
子窗口
2)在主窗口的按钮控件写如下代码
- CString global_msg;
- void Cexample1Dlg::OnBnClickedButtonMain()
- {
- // TODO: 在此添加控件通知处理程序代码
- //把IDC_EDIT_MAIN的值给global_msg
- GetDlgItemText(IDC_EDIT_MAIN, global_msg);
-
- Dlg_new dlg;
- dlg.DoModal();
- //把global_msg的值给IDC_EDIT_MAIN
- SetDlgItemText(IDC_EDIT_MAIN,global_msg);
- }
复制代码
3)在子窗口的头文件中写如下代码
- extern CString global_msg;
复制代码
4)在子窗口的按钮中写如下代码
- void Dlg_new::OnBnClickedButtonNew()
- {
- GetDlgItemText(IDC_EDIT_NEW, global_msg);
- }
复制代码
5)重新子窗口初始化代码
- BOOL Dlg_new::OnInitDialog()
- {
- CDialogEx::OnInitDialog();
-
- // TODO: 在此添加额外的初始化
- SetDlgItemText(IDC_EDIT_NEW, global_msg);
-
- return TRUE; // return TRUE unless you set the focus to a control
- // 异常: OCX 属性页应返回 FALSE
- }
复制代码
二、成员变量法
1)在子窗口头文件,公共成员变量里:
2)在主窗口按钮程序中
- void Cexample1Dlg::OnBnClickedButtonMain()
- {
- // TODO: 在此添加控件通知处理程序代码
-
- /*成员变量法*/
- Dlg_new dlg;
- GetDlgItemText(IDC_EDIT_MAIN,dlg.message);
- dlg.DoModal();
- SetDlgItemText(IDC_EDIT_MAIN,dlg.message);
- }
复制代码
3) 在子窗口按钮程序中
- void Dlg_new::OnBnClickedButtonNew()
- {
- // TODO: 在此添加控件通知处理程序代码
-
- /*成员变量法*/
- GetDlgItemText(IDC_EDIT_NEW, message);
-
- }
复制代码
4)在子窗口初始化程序中
- BOOL Dlg_new::OnInitDialog()
- {
- CDialogEx::OnInitDialog();
-
- /*成员变量法*/
- SetDlgItemText(IDC_EDIT_NEW, message);
-
- return TRUE; // return TRUE unless you set the focus to a control
- // 异常: OCX 属性页应返回 FALSE
- }
复制代码
三、通过AfxGetMainWnd()获取主窗口的指针
1)主窗口按键程序
- void Cexample1Dlg::OnBnClickedButtonMain()
- {
- // TODO: 在此添加控件通知处理程序代码
-
- Dlg_new dlg;
- dlg.DoModal();
- }
复制代码
2)子窗口初始化程序
- BOOL Dlg_new::OnInitDialog()
- {
- CDialogEx::OnInitDialog();
-
- /*法三通过AfxGetMainWnd()获取主窗口的指针*/
- CString msg;
-
- //CWnd* pWnd = AfxGetMainWnd();
-
- //CDialog 为CWnd的子类所以可以用下面的代码,代替上面的代码。
- //因为MFC的窗口都是基于CDialog,所以用下面的代码
- CDialog* pdlg = (CDialog*)AfxGetMainWnd(); //获取主窗口的指针
- pdlg->GetDlgItemText(IDC_EDIT_MAIN,msg);
- SetDlgItemText(IDC_EDIT_NEW,msg);
- return TRUE; // return TRUE unless you set the focus to a control
- // 异常: OCX 属性页应返回 FALSE
- }
复制代码
3)子窗口按键程序
- void Dlg_new::OnBnClickedButtonNew()
- {
- // TODO: 在此添加控件通知处理程序代码
-
- /*法三通过AfxGetMainWnd()获取主窗口的指针*/
- CString msg;
- CDialog* pdlg = (CDialog*)AfxGetMainWnd();
-
- GetDlgItemText(IDC_EDIT_NEW, msg);
- pdlg->SetDlgItemText(IDC_EDIT_MAIN, msg);
- }
复制代码
四、通过GetParent()获取父窗口的指针
1)主窗口按键程序
- void Cexample1Dlg::OnBnClickedButtonMain()
- {
- // TODO: 在此添加控件通知处理程序代码
-
- Dlg_new dlg;
- dlg.DoModal();
- }
复制代码
2)子窗口初始化程序
- BOOL Dlg_new::OnInitDialog()
- {
- CDialogEx::OnInitDialog();
-
- /*法四通过GetParent()获取父窗口的指针*/
- CString msg;
-
- //CWnd* pWnd = AfxGetMainWnd();
-
- //CDialog 为CWnd的子类所以可以用下面的代码,代替上面的代码。
- //因为MFC的窗口都是基于CDialog,所以用下面的代码
- CDialog* pdlg = (CDialog*)GetParent(); //获取主窗口的指针
- pdlg->GetDlgItemText(IDC_EDIT_MAIN,msg);
- SetDlgItemText(IDC_EDIT_NEW,msg);
- return TRUE; // return TRUE unless you set the focus to a control
- // 异常: OCX 属性页应返回 FALSE
- }
复制代码
3)子窗口按键程序
- void Dlg_new::OnBnClickedButtonNew()
- {
- // TODO: 在此添加控件通知处理程序代码
-
- /*法四通过GetParent()获取父窗口的指针*/
- CString msg;
- CDialog* pdlg = (CDialog*)GetParent();
-
- GetDlgItemText(IDC_EDIT_NEW, msg);
- pdlg->SetDlgItemText(IDC_EDIT_MAIN, msg);
- }
复制代码
|
|