如何在其父窗口关闭时通知 TabCtrl?

Posted

技术标签:

【中文标题】如何在其父窗口关闭时通知 TabCtrl?【英文标题】:How to notify TabCtrl when its parent window closes? 【发布时间】:2014-01-19 16:33:53 【问题描述】:

我用的是BCG Pro的控件CBCGPTabWnd,里面包含多个tab窗口,当调用父Dialog的OnOK()时,不知道怎么通知tab窗口进行清理和保存工作。

而且我无法为这些选项卡窗口添加公共接口来调用来执行此操作。

现在我在父级的 OnOK 处理程序中使用 TabWnd->SendMessage(WM_COMMAND, IDOK) 来为这些子选项卡窗口激发 OnOK 消息,因为它们实际上是基于对话框的窗口。

我这样做对吗?

PS:一般情况下我可以明确通知他们会更好,WM_DESTROY是一个选项,但它只能用于Closing,并且很难控制时间

【问题讨论】:

为什么不处理 WM_DESTROY?当父窗口被销毁时,子窗口至少会收到此消息。你也有 WM_PARENTNOTIFY 通知父母关于孩子的破坏。 谢谢。我考虑过这一点。但如果有更明确的方式会更好,因为有时我希望选项卡窗口在其他情况下保存工作而不是关闭。那么我还能做些什么来定义我的自定义消息呢? 添加一条WM_APP+n消息并发送给所有后代。 @xMRi 好的...如果你回答,我可以投票 【参考方案1】:

只需在内部使用 WM_APP+n 发送一条私人/诅咒消息。 使用 ON_MESSAGE 处理它。

如果您的父母需要通知嵌入的子窗口,这可以对每种情况做出反应。您可以在不同的窗口类型中实现它。

【讨论】:

以上是关于如何在其父窗口关闭时通知 TabCtrl?的主要内容,如果未能解决你的问题,请参考以下文章

如何在单击窗口的任何位置关闭通知

outlook2013如何设置最小化

如何判断一个窗体的状态为show

.NET中开发WinForm程序,如何通过一个窗口打开另外一个窗口,要求上一窗口关闭

SwiftUI 和 macOS:如何检测关闭的最后一个窗口并显示应用程序将退出的警报

MFC中TabCtrl控件怎么随着窗体的大小变化而变化?