mfc 点击子对话框,主对话框内容清除
点击子对话框(CRESULT)的按钮,返回到主对话框(CMyDlg),并且将主对话框里的内容清除下面是我在子对话框.cpp的那个按钮的函数里写的程序。voidCRESUL...
点击子对话框(CRESULT)的按钮,返回到主对话框(CMyDlg),并且将主对话框里的内容清除
下面是我在子对话框.cpp的那个按钮的函数里写的程序。
void CRESULT::OnCancel()
{
CMyDlg dlg;
dlg.m_input.Empty();
UpdateData(false);
CDialog::OnCancel();
}
为什么子对话框关闭后,主对话框里的内容不清除。 展开
下面是我在子对话框.cpp的那个按钮的函数里写的程序。
void CRESULT::OnCancel()
{
CMyDlg dlg;
dlg.m_input.Empty();
UpdateData(false);
CDialog::OnCancel();
}
为什么子对话框关闭后,主对话框里的内容不清除。 展开
展开全部
你这个CMyDlg dlg;是一个局部变量,OnCancel函数退出后,你的dlg就会被释放掉。所以肯定会有Bug。
解决办法:将CMyDlg 的对象声明为类成员变量,这样才不会引起自动析构。
解决办法:将CMyDlg 的对象声明为类成员变量,这样才不会引起自动析构。
追问
那在CMyDlg声明dlg的时候应该是什么型的呢?
追答
在你的CRESULT的头文件里声明一个:
CMyDlg m_dlg;
这样才不会在函数退出时,自动将你的dlg清除掉。
如果你的dlg已经初始化了,即已经创建了。你想用它,就让dlg返回个窗口指针给你。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询