#1 

12-06-2008 19:05:25

samsoft
Membres
Avatar de samsoft
Date d'inscription:
Messages: 14
IP: 84.101.138.182
Courriel  Site web

Bonjour, je développe un petit rpg (on verra jusqu'où le projet ira [seul pour le moment big_smile ] ).
Je test un moyen d'afficher les informations de mon personnage principal.

Jusqu'ici tout va bien, je crée une classe dérivant de IEventReceiver et j'ajoute une fonction updateOfBoxes soit mise à jour des boîtes (j'ai pas trouvé mieux comme nom hmm ).

Quand l'utilisateur presse I (comme Informations), une messageBox s'affiche (non modale bien entendu), quand il presse à nouveau la touche I, la fenêtre "devrait" être détruite.

Voilà avant tout mon code : (juste de la fonction)

void CEventReceiver::updateOfBoxes()
{
    if(m_isPrinting) //Si une touche permettant de cre'er un objet a e'te' presse'
    {
        if(!m_isInfoBoxVisible) //Si la boite d'info n'est pas affiche'e
        {
            if(m_action == printInfoBox) //Si l'utilisateur veut en cre'er une
            {
                m_gui->addMessageBox(m_myCharacter->getName(), L"PV: 100%\
HP: 90%", false); //Donne'es bidons pour tester
                m_isInfoBoxVisible = true;
            }
        }
        else if(m_isInfoBoxVisible)
        {
            if(m_action == deleteInfoBox) //On de'truit la boite d'info
            {
                m_isInfoBoxVisible = false;
            }
        }
    }
}

Bon mon code fait exactement ce qui est prévu, ma question est :
Comment supprimer une messageBox (j'ai cherché dans la doc, j'ai trouvé add mais pas delete) et à part supprimer le gui lui même (ce qui est affreux car faudrait en recréer un autre à chaque fois), je ne vois pas.

Pour le moment :
Pression 1 sur I -> affiche la boite
Pression 2 sur I -> du point de vue code la boite est détruite
Pression 3 sur I -> affiche la boite
Pression 4 sur I -> du point de vue code la boite est détruite
...

Je me retrouve donc avec (nombre de fois où on presse I)/2 boites ce qui est assez gênant.

Merci d'avance,


Le savoir est un droit universel, libérez le code source !

Hors ligne


#2 

13-06-2008 08:21:33

Perceval
Membres
Avatar de Perceval
Date d'inscription:
Messages: 105
IP: 90.31.167.44
Courriel

Les boites de messages que tu utilises dérivent de la classe IGUIElement, qui définit une méthode remove(). C'est cette méthode que tu dois appeler pour détruire ta message box.

ps : updateOfBoxes, ça me semble pas si mauvais comme nom wink


Hors ligne


#3 

13-06-2008 16:01:02

samsoft
Membres
Avatar de samsoft
Date d'inscription:
Messages: 14
IP: 84.101.138.182
Courriel  Site web

Merci smile
Je vais essayer cela mais je ne pourrai tester cette solution que dans 3 semaines (pas de résolu tout de suite).


Le savoir est un droit universel, libérez le code source !

Hors ligne


Options Liens officiels Caractéristiques Statistiques Communauté
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1440 sujets
11337 messages
Dernier membre inscrit: Saidov17
122 invités en ligne
membre en ligne: -
RSS Feed