2011-03-19 105 views
2

我想知道的主要問題是,讓我們說一個按鈕的動作會導致自己被刪除。我的意思是,一個動作偵聽器已經添加到按鈕中,並且該動作事件想要在按鈕被調用時被銷燬。但它不能只是調用刪除它,它需要一些如何標記爲刪除,當按鈕完成它的事件,它會被刪除。GUI中的內存管理

對我來說,這裏有兩個主要問題:因爲我的GUI是多態的,指針可能來自DLL中的工廠。另外,即使我將按鈕添加到刪除隊列,該隊列何時應該出隊?每次我的遊戲獲得更新()時,我應該檢查隊列嗎?

這是如何通常在GUI中完成的,例如您可以從BaseButton創建SuperButton。

謝謝

回答

3

通常在GUI中有處理異步輸入消息的消息循環。假設你有這樣的事情,通常的做法是向這個隊列發佈消息,這將導致控制被刪除。因爲消息隊列在事件處理程序完成後被抽取,所以您沒有任何問題。