【发布时间】:2018-03-23 12:28:34
【问题描述】:
我已提出以下申请:
正如您在单击父窗口中的设置按钮时看到的那样,会打开一个名为“设置”的新子窗口,但不幸的是,当关闭该子窗口时,它并没有关闭并保持隐藏状态。当再次打开子窗口时,它会创建另一个子窗口的实例,依此类推。
问题是关闭父窗口时它没有关闭并保留在task manager -> processes。
// Creates an instance of child window
void mainfrm::settings_btnOnButtonClick(wxCommandEvent & event) {
this->settingWindow = new settingsfrm(this);
settingWindow->ShowModal();
}
// When closing the child window
void settingsfrm::cancel_btnOnButtonClick(wxCommandEvent & event) {
this->EndModal(0);
}
// When destroying the variable that contains the instance of child window
mainfrm::~mainfrm() {
settingWindow = NULL;
delete settingWindow;
}
【问题讨论】:
-
我不知道你的问题,但这看起来非常糟糕:settingWindow = NULL;删除设置窗口;
-
尝试交换这两行,settingWindow = NULL bit
-
settingWindow 应该包装在一个智能指针中,如果它不是共享的则为 unique_ptr(否则为 shared_ptr)