GUI中的内存管理

时间:2011-03-19 17:27:51

标签: c++ user-interface

我想知道的主要事情是,让我们说一个按钮的动作会导致自己被删除。我的意思是,在按钮中添加了一个动作监听器,该动作事件希望在调用按钮时销毁该按钮。但它不能只是调用delete,它需要一些标记它来删除,当按钮完成它的事件时,它会被删除。

对我来说,这里有两个主要问题:因为我的GUI是多态的,所以指针可能来自DLL中的工厂。此外,即使我将按钮添加到删除队列,该队列何时应该出列?每次我的游戏获得更新()时,我应该只检查队列吗?

这通常是如何在GUI中完成的,例如你可以从BaseButton创建一个SuperButton。

由于

1 个答案:

答案 0 :(得分:3)

通常在GUI中有一个用于处理异步输入消息的消息循环。假设您有这样的事情,通常的方法是将消息发布到此队列,这将导致控件被删除。因为事件处理程序完成后会消息消息队列,所以没有问题。