Salut,
"on" s'est trompé.
Pour récupérer le texte d'un IGUIEditBox il faut invoquer sa méthode getText().
De plus l' évènement EGET_EDITBOX_ENTER intervient lorsqu'on appuie sur entrée dans l' EditBox.
Un exemple, assez court:
#include <irrlicht.h>
using namespace irr;
using namespace core;
using namespace video;
using namespace gui;
/*------------------------------------------------------------------------------
Evenements
------------------------------------------------------------------------------*/
class MyEventReceiver : public IEventReceiver
{
public:
MyEventReceiver(IGUIListBox* Console, IGUIEditBox* TxtSaisie)
{
saisie = TxtSaisie;
listbox = Console;
}
virtual bool OnEvent(SEvent event)
{
if (event.EventType == EET_GUI_EVENT)
{
if (event.GUIEvent.EventType == EGET_EDITBOX_ENTER)
{
listbox->addItem(saisie->getText());
saisie->setText(L"");
return true;
}
}
return false;
}
private:
IGUIEditBox* saisie;
IGUIListBox* listbox;
};
/*------------------------------------------------------------------------------
Point d'entree
------------------------------------------------------------------------------*/
int main(int argc, char **argv)
{
s32 HEIGHT=200;
s32 WIDTH =200;
IrrlichtDevice* device = createDevice(EDT_OPENGL,
dimension2d<s32>(HEIGHT, WIDTH), 24, false, false, false);
if (!device) return 1;
IVideoDriver* driver = device->getVideoDriver();
scene::ISceneManager* smgr = device->getSceneManager();
IGUIEnvironment* igui = device->getGUIEnvironment();
IGUIFont* font = igui->getFont("../../media/fonthaettenschweiler.bmp");
igui->getSkin()->setFont(font);
// Listbox pour stocker les messages
IGUIListBox *Console = igui->addListBox(rect<s32>(0,0, WIDTH, HEIGHT-20), 0, 1, true);
//Zone de saisie
position2d<s32> pos (0,HEIGHT-20);
dimension2d<s32> size ( WIDTH, 20);
IGUIEditBox* TxtSaisie = igui->addEditBox ( L"saisie", rect<s32>(pos,size), false, NULL, -1);
TxtSaisie->setOverrideColor (video::SColor(255,10,200,10));
MyEventReceiver *receiver = new MyEventReceiver(Console, TxtSaisie);
device->setEventReceiver(receiver);
while (device->run())
{
driver->beginScene(true, true, 0);
igui->drawAll();
driver->endScene();
}
device->drop();
delete receiver;
return 0;
}