大虾!子窗体怎么返回值给主窗体 并且不关闭。 dlg.DoModal(); ==========这是模态的,不可能,用非模态的。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 父窗体某代码片段中...CChildDlg childDlg;childDlg.Create(IDD_CHILDDLG, this);childDlg.ShowWindow(SW_SHOW);子窗体就出来了非模态的。然后在子窗体按钮响应里边GetParent得到父窗体的指针(CWnd*),转型为父窗体类的类型指针,接着想干嘛干嘛。 父窗口自定义个结构,用来存储子窗口的相关信息,自窗口初始化时,传递这个结构的指针,等到子窗口onok发生时,把子窗口的这些信息写到这个结构里边。这样就能得到子窗口保留的信息了,就行打开和保存对话框一样,需要有个结构! 刚才没有看清问题。不好意思。不关闭的话就是6、7、8楼说的,使用postmessage自定义消息。 void CChildDlg::OnBnClickedButton1(){ CMainDlg* pDlg=(CMainDlg*)(AfxGetApp()->m_pMainWnd); pDlg->SetText("aaa");}void CMainDlg::SetText(CString text){ CWnd* pWnd = GetDlgItem(IDC_EDIT1); if(pWnd) { CString str; pWnd->GetWindowText(str); str+=text; pWnd->SetWindowText(str); }} postmessage用参数传递过去,没有问题的。 使用非模态对话框 然后自定义消息 POST给主窗口,或着按3楼的说法,在BUTTON的事件函数中 使用CWnd* pParentWnd = GetParent()得到父窗口类指针,接着用This->GetDlgIteText(...);pParentWnd->SetDlgItemText(...); 方法很多,例如,在子窗口中要把主窗口中IDC_EDIT1控件改成“1”,可以这样做:GetParent()->SetDlgItemText(IDC_EDIT1, _T("1")); CString str;str="as'fjksf'sdf" 找到两个"'"的位置 中英文字符串输出 FindWindow的问题 (IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX,这是什么意思? _wfopen打开文件的格式问题 C++ Primer 3/e 的練習題,有一本習題解答: C++ Primer Answer Book 控件数组的顺序问题 两个基础问题,每个50分 一个VC调试中的Access Violation问题 问一个关于v86的通用保护异常的问题:怎处理和传递参数? typedef struct为什么会出错? 凹多边形分割 代码(帮忙)
CChildDlg childDlg;
childDlg.Create(IDD_CHILDDLG, this);
childDlg.ShowWindow(SW_SHOW);
子窗体就出来了非模态的。
然后在子窗体按钮响应里边GetParent得到父窗体的指针(CWnd*),转型为父窗体类的类型指针,接着想干嘛干嘛。
不关闭的话就是6、7、8楼说的,使用postmessage自定义消息。
void CChildDlg::OnBnClickedButton1()
{
CMainDlg* pDlg=(CMainDlg*)(AfxGetApp()->m_pMainWnd);
pDlg->SetText("aaa");
}
void CMainDlg::SetText(CString text)
{
CWnd* pWnd = GetDlgItem(IDC_EDIT1);
if(pWnd)
{
CString str;
pWnd->GetWindowText(str);
str+=text;
pWnd->SetWindowText(str);
}
}
GetParent()->SetDlgItemText(IDC_EDIT1, _T("1"));