我在一个按钮内,new出了一个对话框,这个delete dlg应该放在什么地方呢? void CPrjDlg::OnBtn1() { // TODO: Add your control notification handler code here DlgTest* dlg = new DlgTest; dlg->Create(IDD_DLG_TEST,this); dlg->ShowWindow(TRUE); }
[quote=引用 13 楼 Automation_dmu 的回复:] [quote=引用 10 楼 cbzjzsb123 的回复:] [quote=引用 4 楼 buyong 的回复:] CPrjDlg { ... DlgTest* m_dlg } CPrjDlg::CPrjDlg:m_dlg(NULL) { .... } CPrjDlg::~CPrjDlg { if(m_dlg) { m_dlg->Close(); //?? close the dlg, you may use SendMessage(WM_QUIT) delete m_dlg; m_dlg = NULL; } } void CPrjDlg::OnBtn1() { // TODO: Add your control notification handler code here m_dlg = new DlgTest; m_dlg->Create(IDD_DLG_TEST,this); m_dlg->ShowWindow(TRUE); }
[quote=引用 10 楼 cbzjzsb123 的回复:] [quote=引用 4 楼 buyong 的回复:] CPrjDlg { ... DlgTest* m_dlg } CPrjDlg::CPrjDlg:m_dlg(NULL) { .... } CPrjDlg::~CPrjDlg { if(m_dlg) { m_dlg->Close(); //?? close the dlg, you may use SendMessage(WM_QUIT) delete m_dlg; m_dlg = NULL; } } void CPrjDlg::OnBtn1() { // TODO: Add your control notification handler code here m_dlg = new DlgTest; m_dlg->Create(IDD_DLG_TEST,this); m_dlg->ShowWindow(TRUE); }
[quote=引用 3 楼 jianwen0529 的回复:] 不需要用,或者销毁CPrjDlg(析构)的时候 你这是动态创建么? 你这样子的,应该用个成员来保存你的指针,否则你函数退出,局部变量就被销毁了!
[quote=引用 4 楼 buyong 的回复:] CPrjDlg { ... DlgTest* m_dlg } CPrjDlg::CPrjDlg:m_dlg(NULL) { .... } CPrjDlg::~CPrjDlg { if(m_dlg) { m_dlg->Close(); //?? close the dlg, you may use SendMessage(WM_QUIT) delete m_dlg; m_dlg = NULL; } } void CPrjDlg::OnBtn1() { // TODO: Add your control notification handler code here m_dlg = new DlgTest; m_dlg->Create(IDD_DLG_TEST,this); m_dlg->ShowWindow(TRUE); }
[quote=引用 楼主 cbzjzsb123 的回复:] 我在一个按钮内,new出了一个对话框,这个delete dlg应该放在什么地方呢? void CPrjDlg::OnBtn1() { // TODO: Add your control notification handler code here DlgTest* dlg = new DlgTest; dlg->Create(IDD_DLG_TEST,this); dlg->ShowWindow(TRUE); }
CPrjDlg { ... DlgTest* m_dlg } CPrjDlg::CPrjDlg:m_dlg(NULL) { .... } CPrjDlg::~CPrjDlg { if(m_dlg) { m_dlg->Close(); //?? close the dlg, you may use SendMessage(WM_QUIT) delete m_dlg; m_dlg = NULL; } } void CPrjDlg::OnBtn1() { // TODO: Add your control notification handler code here m_dlg = new DlgTest; m_dlg->Create(IDD_DLG_TEST,this); m_dlg->ShowWindow(TRUE); }
不需要用,或者销毁CPrjDlg(析构)的时候 你这是动态创建么? 你这样子的,应该用个成员来保存你的指针,否则你函数退出,局部变量就被销毁了!
boost::shared_ptr<DlgTest> dlg(new DlgTest());
65,187
社区成员
250,526
社区内容
加载中
试试用AI创作助手写篇文章吧