【发布时间】:2018-12-06 09:23:55
【问题描述】:
我完全清楚我的问题没有明确的解决方案,这就是为什么我不问为什么它不起作用,而是问预期的行为是什么/当前的实现是如何工作的:
我有一个带有很多子 GUI 元素的 wxFrame 派生类。关闭时调用 wxFrame::Destroy() 并且我最终不仅在我的 wxFrame 派生类的析构函数中,而且在所有这些子元素的析构函数中。在这种情况下,我的所有窗口都已关闭,应用程序正常退出。
现在在某些情况下这不起作用:我可以通过 wxFrame::Destroy(),它和往常一样做,但之后没有调用析构函数,应用程序保持活动和可见。在这种情况下,我可以尝试多次关闭/调用 wxFrame::Destroy(),结果始终相同,应用程序保持活动状态,所有窗口仍然可见且可用。
我个人猜测,这与我的一个子元素有关,但我不知道是哪一个/什么会导致这种行为。
所以我的问题是:wxFrame::Destroy() 打算如何工作,在什么情况下它会拒绝这样的调用并且不会破坏相关的 wxFrame?
【问题讨论】:
-
你设置了什么条件来显示这种行为?你展示的一些代码会很好。注意:wxFrame 使用延迟销毁,所以所有挂起的事件都在调用析构函数之前处理。见docs
标签: wxwidgets