2011-03-19 1 views
2

La principale chose que je me demande est, disons l'action d'un bouton se fait supprimer. Par ce que je veux dire, un écouteur d'action a été ajouté au bouton, et cet événement d'action aimerait que le bouton soit détruit quand il est appelé. Mais il ne peut pas simplement appeler supprimer, il faut un peu comment le marquer pour la suppression et quand le bouton est fait son événement, il est supprimé. Pour moi, il y a 2 problèmes principaux ici: Parce que mon interface graphique est polymorphe, le pointeur pourrait provenir d'une usine dans une DLL. En outre, même si j'ai ajouté le bouton à une file d'attente de suppression, quand cette file d'attente devrait-elle être supprimée? Devrais-je vérifier la file d'attente chaque fois que mon jeu reçoit une mise à jour()?Gestion de la mémoire dans une interface graphique

Comment cela se fait-il habituellement dans les interfaces graphiques où vous pouvez par exemple créer un SuperButton à partir de BaseButton.

Merci

Répondre

3

Habituellement dans une interface graphique il y a une boucle de message pour le traitement des messages d'entrée asynchrones. En supposant que vous avez une telle chose, l'approche normale consiste à poster un message à cette file d'attente qui entraînera la suppression du contrôle. Étant donné que la file d'attente de messages est pompée après la fin de votre gestionnaire d'événements, vous n'avez aucun problème.