mfc 点击子对话框,主对话框内容清除

点击子对话框(CRESULT)的按钮,返回到主对话框(CMyDlg),并且将主对话框里的内容清除下面是我在子对话框.cpp的那个按钮的函数里写的程序。voidCRESUL... 点击子对话框(CRESULT)的按钮,返回到主对话框(CMyDlg),并且将主对话框里的内容清除
下面是我在子对话框.cpp的那个按钮的函数里写的程序。
void CRESULT::OnCancel()
{
CMyDlg dlg;
dlg.m_input.Empty();
UpdateData(false);
CDialog::OnCancel();
}
为什么子对话框关闭后,主对话框里的内容不清除。
展开
 我来答
任明星Ming
2013-08-12 · TA获得超过798个赞
知道小有建树答主
回答量:1061
采纳率:100%
帮助的人:1154万
展开全部
你这个CMyDlg dlg;是一个局部变量,OnCancel函数退出后,你的dlg就会被释放掉。所以肯定会有Bug。

解决办法:将CMyDlg 的对象声明为类成员变量,这样才不会引起自动析构。
追问
那在CMyDlg声明dlg的时候应该是什么型的呢?
追答
在你的CRESULT的头文件里声明一个:
CMyDlg m_dlg;
这样才不会在函数退出时,自动将你的dlg清除掉。

如果你的dlg已经初始化了,即已经创建了。你想用它,就让dlg返回个窗口指针给你。
来自月岩仪态万千的比目鱼
2013-08-11 · TA获得超过1571个赞
知道小有建树答主
回答量:1221
采纳率:50%
帮助的人:975万
展开全部
使用指针试试。
void CRESULT::OnCancel()
{
CMyDlg *p=( CMyDlg *)GetParent();

p->m_input = "";
UpdateData(false);

OnOK();
}
追问
貌似不行。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式