把ShowWindow(SW_HIDE);和最后的OnOK() 注释掉即可。 或者只将OnOK()换成ShowWindow(SW_SHOW);
意思是你在DoModal() 显示你的NetworkManager类关联的模块对话框的前后调用ShowWindow来隐藏和显示主窗口,并不是要去销毁主窗口。DetroyWindow调用是销毁非模态对话框的,而模态对话框是调用EndDialog()来销毁的,EndDialog对非模态对话框来说只是隐藏了该窗口而已,你可以后续调用ShowWindow(SW_SHOW)将其显示出来。 比如你在主对话框的按钮BN_CLICKED响应函数中弹出NetworkManager类关联的模态对话框 C主对话框类Dlg::OnBnClicked() { ShowWindow(SW_HIDE); NetworkManager dlg; dlg.DoModal(); ShowWindow(SW_SHOW); } 即可,其它地方不需要额外处理。
C主对话框类Dlg::OnBnClicked() { ShowWindow(SW_HIDE); NetworkManager dlg; dlg.DoModal(); ShowWindow(SW_SHOW); }
那你DoModal()前后调用ShowWindow(SW_HIDE/SW_SHOW);即可。
你模态对话框DoModal()返回以后,你的对话框就销毁了~
15,980
社区成员
115,867
社区内容
加载中
试试用AI创作助手写篇文章吧