从callback窗口function(Windows OS)中删除窗口可以吗?

为了节省内存,我想一次只能看一个窗口的应用程序。 比方说,我们有一个窗口,按下一个button后,另一个窗口显示,但是前一个被删除。 如果在窗口callback函数中按下button,那么从窗口函数内部删除窗口并在新窗口closures后重新创build它是安全的? 类似的东西:

void callback(...) { ... if (msgID == ENTER_KEY) { deleteMyself(); showWindow2(); createMyself(); } ... } 

如果这个不好,你能build议更好的方法吗?

我认为这通常是在桌面上一个坏主意。 所以你会放松用户输入的一切。 根据您的应用程序,用户可能会迷惑为什么选项对话框关闭主窗口。

但是,在移动设备上,只有一个窗口是正常的(除了使用对话框)。 但是在这种情况下,所有的输入都应该被存储起来,这样窗口就可以重新恢复到原来的状态。

一般情况下,如果您在内存管理方面遇到问题,最好检查一下在大多数情况下是否泄漏内存,GUI不需要太多的内存。