如何在wxWidgets中保存窗口状态?

时间:2011-09-23 06:44:47

标签: visual-c++ user-interface wxwidgets

我正在使用wxWidgets构建一个UI。

在我的GUI中,我生成一个窗口(wxFrame类),可以通过按下位图按钮来访问它。在那个窗口中,我还执行了一些任务,再次按下一些位图按钮并对它们进行诽谤等等。但我无法关闭并重新打开该窗口并保存状态。我总是要重新初始化它,这是非常不切实际的。

如何保存窗口状态?我检查了互联网,建议使用wxPersistent类,但我的wxWidgets中缺少这个类。

感谢您的帮助,

最诚挚的问候。

1 个答案:

答案 0 :(得分:1)

当您收到wxWindow::Show()时,您可以使用wxCloseEvent成员函数隐藏它,而不是每次都破坏窗口,将false作为参数传递。然后你否决wxCloseEvent以防止WxWidgets破坏你的窗口:

// In your close handler:
if(evt.CanVeto()) // Where evt is a wxCloseEvent
{
    Show(false);  // Hide window
    evt.Veto();   // Prevent window destruction
}

这应该从屏幕上删除它,但所有已初始化的部分仍应存在。如果您需要再次展示,请使用Show()再次调用true方法。