社区
界面
帖子详情
如何关闭非模态窗口所有模态子窗口
HersonX
2013-01-24 11:22:50
现有主窗口CMainDlg dlgMain,有一个成员CDlgA m_dlgA 是Create出来一个窗口并ShowWindow出来,点击dlgA上一个按钮DoModal出来一个CDlgB dlgB(临时变量),在dlgB上面DoModal出来一个CDlgC dlgC(临时变量),如此若干次,但是点击DlgMain的关闭按钮,发现只有dlgMain关闭了,程序没有结束,m_dlgA 以及其所有的DoModal出来的子窗口 没有关闭,求解决办法,谢谢。
...全文
277
19
打赏
收藏
如何关闭非模态窗口所有模态子窗口
现有主窗口CMainDlg dlgMain,有一个成员CDlgA m_dlgA 是Create出来一个窗口并ShowWindow出来,点击dlgA上一个按钮DoModal出来一个CDlgB dlgB(临时变量),在dlgB上面DoModal出来一个CDlgC dlgC(临时变量),如此若干次,但是点击DlgMain的关闭按钮,发现只有dlgMain关闭了,程序没有结束,m_dlgA 以及其所有的DoModal出来的子窗口 没有关闭,求解决办法,谢谢。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
19 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
曾有一个人
2013-04-19
打赏
举报
回复
直接 PostMessage(WM_QUIT); 就可以了
曾有一个人
2013-04-19
打赏
举报
回复
好晕,,模态对话框没有处理,怎么就可以去操作主窗口
向立天
2013-04-18
打赏
举报
回复
您好 我是本版版主 此帖已多日无人关注 请您及时结帖 如您认为问题没有解决可按无满意结帖处理 另外本版设置了
疑难问题汇总帖
并已在版面置顶 相关规定其帖子中有说明 您可以根据规定提交您帖子的链接 如您目前不想结帖只需回帖说明 我们会删除此结帖通知 见此回复三日内无回应 我们将强制结帖 相关规定详见界面
界面版关于版主结帖工作的具体办法
lifeforu
2013-03-02
打赏
举报
回复
1,窗口变量用share_ptr 2,DoModal改为ShowWindow & EnableParentWindow
HersonX
2013-02-28
打赏
举报
回复
保存窗口的办法不可行,因为都是临时变量,而且中途还有可能已经关闭了部分窗口,我想应该有简单方便的方法的......
sumos
2013-01-28
打赏
举报
回复
用一个栈来保存所有的modal窗口,然后退出时,一边退栈,一边EndDialog
HersonX
2013-01-26
打赏
举报
回复
不行,会报m_dlgA Assert(IsWindow)的异常;
zhangyihu321
2013-01-26
打赏
举报
回复
把子窗体句柄全部保存起来然后一个个销毁
lurenmei
2013-01-26
打赏
举报
回复
话说既然都是模态窗口,你竟然还能点击主窗口的关闭按钮
lurenmei
2013-01-26
打赏
举报
回复
m_dlgA是成员变量的话。。。。
前面的回复作废。。。 对你弹出的那些模态窗口类做如下处理 类中添加成员变量 : static classname* m_pDlg; 实现文件中声明 : classname* classname::m_pDlg = NULL; 初始化时 m_pDlg = this; 父类中onclose() onclose() { if(classname::m_pDlg != null) classname::m_pDlg->onclose(); ........ }
傻X
2013-01-26
打赏
举报
回复
m_dlgA 这个模态窗体Create的时候Parent参数不是dlgMain的指针么? 如果是不会出现这个情况
HersonX
2013-01-26
打赏
举报
回复
出错的地方是VC自带的源代码,无法做判断。
HersonX
2013-01-26
打赏
举报
回复
DoModal 只阻塞父窗口消息,并不阻塞主窗口消息,所以能点关闭按钮
lurenmei
2013-01-26
打赏
举报
回复
额?判断句换成m_dlgA->getsafewnd()!=null试试
lurenmei
2013-01-25
打赏
举报
回复
试试介个行不行CMainDlg dlgMain中重写onclose() onclose() { if (m_dlgA!=NULL) m_dlgA.destroywindow() }
HersonX
2013-01-25
打赏
举报
回复
2#:指向了dlgMain; 3#:都指定了子窗口,但是没有关闭; 4#:都是DoModal出来的临时变量,无法一个一个消灭掉。
快乐鹦鹉
2013-01-24
打赏
举报
回复
dlgA指定的父窗口是哪个呢?最好指向dlgMain
jimette
2013-01-24
打赏
举报
回复
用destroywindow 来一个个消灭掉
feilongjilei
2013-01-24
打赏
举报
回复
如果所有子窗口都指定父窗口的话,关闭父窗口的话,系统会自动帮你关闭子窗口,否则要自己关闭
模态
与
非
模态
子
窗口
调用主
窗口
控件学习
模态
与
非
模态
子
窗口
调用主
窗口
控件学习 应用了4种方法 环境vs2015 学习备份
VC
非
模态
的
子
窗口
用 Visual C++ 实现的
非
模态
的
子
窗口
多
模态
人物识别技术及其在视频场景中的应用
本次分享将介绍爱奇艺人物识别及相关的应用,多
模态
的进展、难点、可落地的点,卡通角色识别的难点、应用中所要解决的问题,AIWWorks智能创作的技术架构、所利用到的AI技术总览、AI所擅长的及AI所不能及的创作点。
C#
非
模态
窗体(show)实现
模态
窗体(ShowDialog)的效果
C#
非
模态
窗体(show)实现
模态
窗体(ShowDialog)的效果
模态
窗口
关闭
时刷新父页面js文件
在
模态
窗口
关闭
时刷新父页面,直接可以调用的
界面
15,979
社区成员
115,897
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章