Historique des modifications - Message

Message #3595

Sujet: Problème d'evenements clavier/GUI


Type Date Auteur Contenu
Création du message 18-02-2008 13:25:58 Tank
Bonjour à tous !

J'ai un problème étrange... avec IEventReceiver, lorsque j'appuis sur un bouton du GUI, et qu'ensuite j'appuis sur une touche du clavier, cette touche est répétée 2 fois.

Voici mes classes :

class KeyEventReceiver : public IEventReceiver
{
	public:
		bool OnEvent(const SEvent &event)
		{
			if(event.EventType == EET_KEY_INPUT_EVENT && event.KeyInput.PressedDown)
			{
				std::cout << "key: " << event.KeyInput.Char << std::endl;
			}

			return false;
		}
};

class GuiEventReceiver : public IEventReceiver
{
	public:
		bool OnEvent(const SEvent &event)
		{
			if(event.EventType == EET_GUI_EVENT && event.GUIEvent.EventType == gui::EGET_BUTTON_CLICKED)
			{
				std::cout << "bouton: " << event.GUIEvent.Caller << std::endl;
			}

			return false;
		}
};

Et le main :

int main()
{
    // IEventReceiver
    KeyEventReceiver keyEvents;
    GuiEventReceiver GuiEvents;

    // creation de la fenetre
    IrrlichtDevice *device = createDevice(video::EDT_DIRECT3D9, core::dimension2d<s32>(110, 40), 32, false, false, true, &keyEvents);
    video::IVideoDriver *driver = device->getVideoDriver();
    gui::IGUIEnvironment *guienv = device->getGUIEnvironment();

    // ajout d'un bouton
    guienv->addButton(core::rect<s32>(10, 10, 100, 30), 0, 1, L"Bouton de test");

    // assigne le IEventReceiver perso au guienv
    guienv->setUserEventReceiver(&GuiEvents);

    // dessine
    while(device->run())
    {
    	driver->beginScene(true, true, video::SColor(0, 100, 100, 100));
    	guienv->drawAll();
    	driver->endScene();
    }

    device->drop();

    return 0;
}

De cette façon ça fonctionne, mais je ne comprend pas pourquoi avec un seul IEventReceiver ça ne marche pas.

Merci de votre aide smile

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