[quote=引用 楼主 sryan 的回复:] A对话框是非模态对话框,B对话框也是个非模态对话框,其中B窗口打开了一个模态对话框堵塞了B对话框。我需要在A窗口中点击某个按钮关闭B对话框,可是因为B对话框上有个模态对话框,直接关闭会导致程序崩溃。 我现在可以枚举到这个以B窗口为父窗口的对话框,那么我如何可以安全的关闭B对话框?关闭B对话框之前肯定需要关闭B上的模态对话框,可是直接Close掉上面的模态对话框程序会崩溃。
[quote=引用 3 楼 worldy 的回复:] [quote=引用 1 楼 rxguoblp 的回复:] step1:在最顶层父窗口类中声明两个静态CWnd* 指针并初始化为NULL,例如: public: static CWnd* pwnd1; static CWnd* pwnd2; step2:在B对话框的OnInitDialog()函数中赋值: CXXXDlg::pwnd1 = FromHandle(GetSafeHwnd()); step3:在模态对话框的OnInitDialog()函数中赋值: CXXXDlg::pwnd2 = FromHandle(GetSafeHwnd()); step4:在A对话框的按钮响应函数中使用关闭功能: void CMyDlgA::OnBnClickedButton1() { if (CXXXDlg::pwnd2 != NULL) { ::SendMessage(CXXXDlg::pwnd2->GetSafeHwnd(),WM_CLOSE,(WPARAM)1,(LPARAM)0); } if (CXXXDlg::pwnd1 != NULL) { ::SendMessage(CXXXDlg::pwnd1->GetSafeHwnd(),WM_CLOSE,(WPARAM)1,(LPARAM)0); } }
A对话框是非模态对话框,B对话框也是个非模态对话框,其中B窗口打开了一个模态对话框堵塞了B对话框。我需要在A窗口中点击某个按钮关闭B对话框,可是因为B对话框上有个模态对话框,直接关闭会导致程序崩溃。 我现在可以枚举到这个以B窗口为父窗口的对话框,那么我如何可以安全的关闭B对话框?关闭B对话框之前肯定需要关闭B上的模态对话框,可是直接Close掉上面的模态对话框程序会崩溃。
[quote=引用 1 楼 rxguoblp 的回复:] step1:在最顶层父窗口类中声明两个静态CWnd* 指针并初始化为NULL,例如: public: static CWnd* pwnd1; static CWnd* pwnd2; step2:在B对话框的OnInitDialog()函数中赋值: CXXXDlg::pwnd1 = FromHandle(GetSafeHwnd()); step3:在模态对话框的OnInitDialog()函数中赋值: CXXXDlg::pwnd2 = FromHandle(GetSafeHwnd()); step4:在A对话框的按钮响应函数中使用关闭功能: void CMyDlgA::OnBnClickedButton1() { if (CXXXDlg::pwnd2 != NULL) { ::SendMessage(CXXXDlg::pwnd2->GetSafeHwnd(),WM_CLOSE,(WPARAM)1,(LPARAM)0); } if (CXXXDlg::pwnd1 != NULL) { ::SendMessage(CXXXDlg::pwnd1->GetSafeHwnd(),WM_CLOSE,(WPARAM)1,(LPARAM)0); } }
step1:在最顶层父窗口类中声明两个静态CWnd* 指针并初始化为NULL,例如: public: static CWnd* pwnd1; static CWnd* pwnd2; step2:在B对话框的OnInitDialog()函数中赋值: CXXXDlg::pwnd1 = FromHandle(GetSafeHwnd()); step3:在模态对话框的OnInitDialog()函数中赋值: CXXXDlg::pwnd2 = FromHandle(GetSafeHwnd()); step4:在A对话框的按钮响应函数中使用关闭功能: void CMyDlgA::OnBnClickedButton1() { if (CXXXDlg::pwnd2 != NULL) { ::SendMessage(CXXXDlg::pwnd2->GetSafeHwnd(),WM_CLOSE,(WPARAM)1,(LPARAM)0); } if (CXXXDlg::pwnd1 != NULL) { ::SendMessage(CXXXDlg::pwnd1->GetSafeHwnd(),WM_CLOSE,(WPARAM)1,(LPARAM)0); } }
15,980
社区成员
115,867
社区内容
加载中
试试用AI创作助手写篇文章吧