如何注销注册的模态窗口,并且显示主窗口

纪宏源 2019-09-09 10:59:05
我在主窗口中使用DoModal的方法显示了一个模态窗口,并且把主窗口屏蔽了,但是在新的窗口中我又做了一个按键,想要返回到主窗口,应该怎么做?
...全文
231 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
schlafenhamster 2019-09-24
  • 打赏
  • 举报
回复
https://blog.csdn.net/schlafenhamster/article/details/7212299
基于 CDialog 的应用程序一开始便被隐藏的方法"再探
sichuanwww 2019-09-16
  • 打赏
  • 举报
回复
Eleven 2019-09-09
  • 打赏
  • 举报
回复
你模态对话框DoModal()返回以后,你的对话框就销毁了~
纪宏源 2019-09-09
  • 打赏
  • 举报
回复
引用 1 楼 Eleven 的回复:
把ShowWindow(SW_HIDE);和最后的OnOK() 注释掉即可。
或者只将OnOK()换成ShowWindow(SW_SHOW);
如果我把ShowWindow(SW_HIDE)和OnOK注释掉的话,在我进入新的窗口市,主窗口并没有屏蔽掉,依然在显示。OnOK注释掉了,debug会弹出一个窗口,.exe has triggered a breakpoint
Eleven 2019-09-09
  • 打赏
  • 举报
回复
把ShowWindow(SW_HIDE);和最后的OnOK() 注释掉即可。
或者只将OnOK()换成ShowWindow(SW_SHOW);
纪宏源 2019-09-09
  • 打赏
  • 举报
回复
引用 8 楼 Eleven 的回复:

意思是你在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);
}

即可,其它地方不需要额外处理。
谢啦,明白你的意思了
Eleven 2019-09-09
  • 打赏
  • 举报
回复

意思是你在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);
}

即可,其它地方不需要额外处理。
zgl7903 2019-09-09
  • 打赏
  • 举报
回复
ShowWindow(SW_HIDE); xxx dlg(this); dlg.DoModal(); ShowWindow(SW_SHOW);
纪宏源 2019-09-09
  • 打赏
  • 举报
回复
引用 5 楼 Eleven 的回复:
那你DoModal()前后调用ShowWindow(SW_HIDE/SW_SHOW);即可。
我在返回主窗口的按键函数中,使用的this-〉DestroyWindow,然后在主窗口的DoModal后加SHOW,然后debug,主窗口依然不显示
Eleven 2019-09-09
  • 打赏
  • 举报
回复
那你DoModal()前后调用ShowWindow(SW_HIDE/SW_SHOW);即可。
纪宏源 2019-09-09
  • 打赏
  • 举报
回复
引用 3 楼 Eleven 的回复:
你模态对话框DoModal()返回以后,你的对话框就销毁了~
在返回之前,我需要关闭主窗口,在返回后,需要把主窗口再显示出来

15,980

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧