我正在使用wxWidgets构建一个UI。
在我的GUI中,我生成一个窗口(wxFrame类),可以通过按下位图按钮来访问它。在那个窗口中,我还执行了一些任务,再次按下一些位图按钮并对它们进行诽谤等等。但我无法关闭并重新打开该窗口并保存状态。我总是要重新初始化它,这是非常不切实际的。
如何保存窗口状态?我检查了互联网,建议使用wxPersistent类,但我的wxWidgets中缺少这个类。
感谢您的帮助,
最诚挚的问候。
答案 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
方法。