我想创建应用程序,一次只能看到一个窗口以节省内存。比方说,我们有一个窗口,在按下另一个窗口显示按钮后,但前一个窗口被删除。如果在窗口回调函数中处理按钮按下,是否可以安全地从该窗口函数内部删除窗口并在新窗口关闭后重新创建窗口?这样的事情:
void callback(...) {
...
if (msgID == ENTER_KEY) {
deleteMyself();
showWindow2();
createMyself();
}
...
}
如果这个方法不好,你能建议更好的方法吗?
答案 0 :(得分:1)
我认为这通常是桌面上的一个坏主意。所以你会放弃用户输入的一切。根据您的应用程序,用户可能会混淆选项对话框关闭主窗口的原因。
但是在移动设备上,只有一个窗口是正常的(除了使用对话框)。但在这些情况下,应存储所有输入,以便窗口可以重新恢复到旧状态。
一般情况下,如果您在内存管理方面遇到问题,请在大多数情况下检查是否泄漏到某处内存,GUI不需要那么多内存。