在mfc中 为啥关闭子窗口连带把主窗口关闭了??

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在mfc中 为啥关闭子窗口连带把主窗口关闭了??相关的知识,希望对你有一定的参考价值。

我想在弹出子窗口进行一些设置后边关闭子窗口,进而返回主窗口,但为什么在关闭子窗口同时,主窗口一并关闭了
都不行 我还是在全部重新做 谢谢大家了

不要强制关闭某个窗口
你弹出一个窗口的时候,主窗口还在不在。
关闭子窗口,在子窗口中加 关闭按钮的消息,加OnOk() 或OnCancel
参考技术A 没有特殊设置是不可能的追问

我是想在点击一个按钮来关闭子窗口,返回主窗口,但主窗口一起关闭了 ,按钮代码如下
void shezhi::Onesc()

if(6==MessageBox("确定退出?",NULL,MB_YESNO|MB_ICONWARNING))

PostMessage(WM_CLOSE,0,0);

追答

这句话没问题,我做了一个对话框,按钮一按弹出来另一个对话框,把这句话放里了,只是关闭了子对话框。你可以把PostMessage(WM_CLOSE,0,0);换成CDialog::OnOK();试试,如果还是全关闭的话有可能是别的地方的问题。类似于窗口创建的时候是不是有什么关联的地方。

monomac - 单击主窗口中的按钮时如何关闭子窗口

【中文标题】monomac - 单击主窗口中的按钮时如何关闭子窗口【英文标题】:monomac - How to close a child windown when click a button in main window 【发布时间】:2012-04-21 09:13:58 【问题描述】:

我用 monodevelop 创建了一个 MonoMac 项目。

我在 Xcode Interface Builder 中打开了文件 MainWindow.xib。在 Interface Builder 中,我将一个新的 NSwindow 面板放入我的项目中。面板名称为:Setting_window,出口名称为:Setting_window。

在主窗口中,我有 2 个按钮:隐藏设置窗口(btn1)和显示设置窗口(btn2);

当我运行项目时,它显示 2 个窗口:主窗口和设置窗口。 单击按钮 btn1 和 btn2 时,我想隐藏和显示设置窗口。在 Windows 上的 C# 中,我使用 .show() 和 .Dispose();但是在 Monomac 上,我不知道该调用哪些方法。

这是代码:

Setting_window.Title = "my setting"; // This works as expected 
//Setting_window.??? // I want to close the settings window

【问题讨论】:

【参考方案1】:

NSWindow.Close() 不可用,因为它如何在 objc 方面释放引用,并且与 GC 配合得不好。

似乎已提交了最近的修复程序,该修复程序恢复了此方法,因此您可以以编程方式关闭窗口:

https://github.com/mono/monomac/commit/6183d93be442aec3946f19e273e4810dff291f66

【讨论】:

以上是关于在mfc中 为啥关闭子窗口连带把主窗口关闭了??的主要内容,如果未能解决你的问题,请参考以下文章

关闭 MFC MDI 应用程序中的所有子窗口

使用 Win32/MFC 关闭并等待子框架窗口的最佳方法

qt中将窗口关闭后为啥还会显示到历史窗口

如何在父窗口中运行子窗口

delphi中 用close关子窗口为啥老是出错

MFC 中创建Dlg的问题