关于MFC非模态对话框的关闭问题。

本人自学MFC。程序函数是提示框内的,我想在点击确定后关闭所有的对话框,现在只能关闭提示的,函数体应该怎么写,球大神指教。

将外部窗口指针传递进来,在提示窗口Cancle后面,用这个指针调用外部窗口的Cancle函数;
如果父窗口就是外部窗口,直接使用GetParent()也可以,不用传指针了追问

大哥,停驶听懂了,怎么写啊?

温馨提示:内容为网友见解,仅供参考
无其他回答

MFC中,模态和非模态对话框的关闭问题
一般可能是窗口2创建的时候,没有明确父窗口关系或者错误的父窗口造成的,这里要将窗口1的句柄作为父窗口。另外,这个问题确实比较古怪,模态关系是很难破坏的,应该是哪个地方做了错误的逻辑处理或者窗口操作,这个不好说一定是哪里的问题。

关于MFC非模态对话框的关闭问题。
将外部窗口指针传递进来,在提示窗口Cancle后面,用这个指针调用外部窗口的Cancle函数;如果父窗口就是外部窗口,直接使用GetParent()也可以,不用传指针了

MFC 中如何关闭当前打开的所有的非模式的对话框。
如果所有对话框的父窗口都是同一个主窗口,那么通过EnumChildWindows获取所有对话框并关闭是没有问题的,但这个方法相对复杂,需要使用回调函数。简单的办法:非模态对话框的指针,做成主窗口的成员变量,创建的时候如果存在,则只ShowWindow,这样可以保证不重复;而关闭就简单了,将这个(或这些)成员变量指针...

mfc关闭非模态对话框
一般对话框有个“取消”按钮,响应这个按钮函数,注释掉里面默认的oncancel代码,替换为 ShowWindow (SW_HIDE);这样就隐藏了对话框。下一次,只需要调用ShowWindow(SW_SHOW);\/\/就可以重复打开

mfc中显示模态对话框闪退
在MFC中解决模态对话框闪退问题:1. 注意对象创建的方式。使用`new`关键字创建的类对象会被分配到堆上。然而,对于那些需要被频繁调用的对象,这种创建方式并不适合。有报道称,这种方法可能导致内存分配和释放的不稳定,进而引起内存碎片问题。2. 确保非模态对话框的实例作为主对话框类的成员。在相应消息...

mfc中显示模态对话框闪退
mfc中显示模态对话框闪退的解决办法:1、用new创建类对象,把对象创建到堆里,但是反复调用的对象不能这样,据说是反复分配释放内存,分配的内存大小不一的话,会产生大量的内存碎片。2、将弹出的非模态对话框这个实例对象作为主对话框类的成员,再在消息函数中调用实例对象的函数定义的ShowWindow函数,通过...

在MFC中,非模态窗口问题
因为你把B的父窗口设成桌面的,最小化时会显示B的父窗口就是桌面了,你想改的话,要么把父窗口换了,要么重载最小化和destroy函数

...即使关闭子对话框,也不再响应父对话框的OnPaint()
原理上是关掉焦点是会还给父窗口,可能因为是子对话框的属性造成的 更改子对话框的风格试试。

MFC如何弹出新对话框的同时隐藏当前对话框并且关闭新对话框后出现之前对...
如果是模态的对话框,那么上一个不关闭就可以了,直接按钮消息里面弹出下一级对话框,那么下级对话框关闭,上一级自然在最前面。如果是非模态,比较好管理,只要做好几个对话框的ShowWindow的管理就可以了。看你是那种对话框。

mfc中button按钮打开新对话框,关闭原对话框,怎么办?
两种方法 1)起两个进程 2)用你的老方法 ,但是你在dlg->DestroyWindow()的时候只是将你的新对话框destroy了,并没有将旧对话框destroy掉,所以应该响应新对话框的WM_DESTROY同时应该向旧对话框也要发送WM_DESTROY消息 这样进程就退出了.

相似回答