Historique des modifications - Message

Message #9792

Sujet: EditBox/evenements


Type Date Auteur Contenu
Création du message 16-02-2011 15:06:50 overdrivr
Bonjour à tous,

Je rencontre actuellement un problème avec l'utilisation d'une editbox. Il s'avère que dans mon capteur d'events je traite plusieurs choses dans l'ordre :

GUI
SOURIS
CLAVIER
  • >Traitement des touches P,M,L


Dans mon programme, en cliquant sur un bouton, cela ouvre une sous-fenêtre contenant la fameause editbox. Je me suis rendu compte que si l'on appuie sur l'une de ces trois touches (P,M,L) l'event n'est pas détecté comme étant un GUI Event, mais comme un Keyboard event. Je vous mets un code minimal pour mieux illustrer tout ça :

if (event.EventType == EET_GUI_EVENT)
    {
        

        s32 id = event.GUIEvent.Caller->getID();


        switch(event.GUIEvent.EventType)
        {
        case gui::EGET_BUTTON_CLICKED:
        {
            switch(id)
            {
           
            case BOUTON_QUITTER :
                device->closeDevice();
                return true;
                break;

    
            case BOUTON_SAUVER :
            {
            
            gui::IGUIWindow* fenetre_save = env->addWindow(core::rect<s32>(300,300,600,500),false,L"Sauvegarder",0,FENETRE_SAUVER);
           
            wstring txt(L"");
            gui::IGUIEditBox* textBox = env->addEditBox(txt.c_str(),core::rect<s32>(10,160,290,190),true,fenetre_save,EDITBOX_NOM_SAVE);
            env->setFocus(textBox);
            fenetreLoaded = true;
            return true;
            }
            break;

            default:
                break;

            }
        }
        break;

        
        case gui::EGET_EDITBOX_CHANGED:
        {
            return true;
        }
        break;

        default:
            break;
        }
    }
    else if(event.EventType == EET_MOUSE_INPUT_EVENT)
    {
        //Peu importe
    }
    else if(event.EventType == EET_KEY_INPUT_EVENT)
    {
        switch(event.KeyInput.Key)
        {
        case KEY_KEY_P:
        {
           cout<<"P"<<endl;
        }
        break;

        case KEY_KEY_M:
        {
             cout<<"M"<<endl;
        }
        break;

        case KEY_KEY_L:
        {
             cout<<"L"<<endl;
        }
        break;


         default:
            break;
        }
    }
    
    return false;

Est ce un problème classique ? Si oui, j'aimerais bien comprendre car ça va vraiment à l'encontre de toute logique, et de tout ce que je sais de irrlicht. Merci d'avance wink

Retour

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
155 invités en ligne
membre en ligne: -
RSS Feed