Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/142.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ GUI中的内存管理_C++_User Interface - Fatal编程技术网

C++ GUI中的内存管理

C++ GUI中的内存管理,c++,user-interface,C++,User Interface,我想知道的主要事情是,比方说一个按钮的动作会导致它自己被删除。我的意思是,一个动作监听器被添加到按钮中,并且该动作事件希望在调用按钮时销毁该按钮。但它不能只调用delete,它需要知道如何将其标记为delete,当按钮完成其事件时,它会被删除 对我来说,这里有两个主要问题:因为我的GUI是多态的,指针可能来自DLL中的工厂。此外,即使我将该按钮添加到删除队列中,该队列何时应退出队列?我是否应该在每次游戏更新()时检查队列 这通常是如何在GUI中完成的,例如,您可以从BaseButton创建Sup

我想知道的主要事情是,比方说一个按钮的动作会导致它自己被删除。我的意思是,一个动作监听器被添加到按钮中,并且该动作事件希望在调用按钮时销毁该按钮。但它不能只调用delete,它需要知道如何将其标记为delete,当按钮完成其事件时,它会被删除

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

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


谢谢

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