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

纪宏源 2019-09-09 10:59:05
我在主窗口中使用DoModal的方法显示了一个模态窗口,并且把主窗口屏蔽了,但是在新的窗口中我又做了一个按键,想要返回到主窗口,应该怎么做?
...全文
278 11 打赏 收藏 转发到动态 举报
写回复
用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()返回以后,你的对话框就销毁了~
在返回之前,我需要关闭主窗口,在返回后,需要把主窗口再显示出来
源码直接下载地址: https://pan.quark.cn/s/1c143f32ee83 华为作为全球领先的通信设备供应商,其产品系列广泛涉及各类网络设备,其中包括我们接下来要探讨的上网卡产品。华为上网卡驱动程序是一种专门为华为品牌旗下多种型号上网卡开发的软件模块,其要功能在于保障这些设备与计算机操作系统的无缝对接。涉及的型号涵盖EC8189、EC226、EC169C、EC360、EC1260、EC1261、EC189、EC122、EC150以及EC168,这些均是由华为公司推出的移动宽带调制解调器,旨在通过移动网络实现便捷的互联网接入服务。驱动程序在计算机系统中的地位举足轻重,它充当了硬件设备与操作系统之间的媒介,负责对硬件设备发出的指令进行解读和执行,并将操作系统的指令传递给硬件设备。华为上网卡驱动程序的及时更新和精准安装是保障设备稳定运作和性能达到最优的关键因素。"天翼宽带安装程序V1.3.3.exe"是由中国电信提供的一个整合性软件包,内含华为上网卡的驱动程序及配套的管理工具。用户可借助此安装程序来执行华为上网卡的相关驱动安装及更新,同步享受中国电信的3G或4G网络服务。版本标识V1.3.3代表软件经过迭代优化,通常包含了对错误的修正、性能的改善以及新功能的引入。 "SetupInfo.xml"作为安装程序的配置文档,其中收录了安装流程中的各项设定和元数据信息,例如安装流程、文件定位、依赖条件等。它是安装程序在执行时参照和遵循的纲领,旨在确保安装流程按既定方案进行。文件名"CT_HW_EVDO_Driver"或许指向华为的EVDO(Evolution-Data Optimized)驱动程序,EVDO是一种3G无线通信规范,具备高速数据传输的特性。该驱动可...

15,976

社区成员

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

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