Associer un bouton a un evenement

Signaler
Messages postés
76
Date d'inscription
lundi 5 septembre 2005
Statut
Membre
Dernière intervention
3 juillet 2007
-
Messages postés
76
Date d'inscription
lundi 5 septembre 2005
Statut
Membre
Dernière intervention
3 juillet 2007
-
Bonjour alors j'arrive pas a associer un bouton a un evenement :( en fait l'appui sur ce bouton declenche l'appel d'une methode associée a la classe de la fenetre. J'aurai aime pouvoir generer un evenement avec un handle associe et me servir de ce handle pour :
WaitForSingleObject(hEv,m_DUREE_FLAG*60000);

hEv serait donc le handle de mon evenement :)

Le probleme pour le moment est que la fonction WaitForSingleObject me fait perdre la main :(

Voila si quelqu'un a une idee ou un exemple je l'en remercie d'avance :)

6 réponses

Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
WaitForSingleObject comme toute autre fonction de synchro est à employer dans un thread sinon bien sur bloques ton prog.

ciao...
BruNews, MVP VC++
Messages postés
76
Date d'inscription
lundi 5 septembre 2005
Statut
Membre
Dernière intervention
3 juillet 2007

ok mais j'aimerai savoir comment faire pour avoir la fonction de "scrutation" de l'evenement com thread car Visual C++ a declarer comme la fonction "evenementielle" du bouton comme methode de la classe de la fenetre :(

Merci d'avance :)
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
Désolé mais j'expose le principe du point de vue API où 'classe de la fenêtre' n'a pas de sens.
http://www.cppfrance.com/code.aspx?id=19169
Vois comme tout ceci est aisé en écrivant son code soi même sans attendre que VC++ ne déclare quoi que ce soit à ma place.

ciao...
BruNews, MVP VC++
Messages postés
76
Date d'inscription
lundi 5 septembre 2005
Statut
Membre
Dernière intervention
3 juillet 2007

Arf mais je peut pas change la structure du prog car il n'est pas de moi et il est tres important :( 2 dernieres petites questions :
- tu ne connais pas le nom de l'evenement associe par defaut a un bouton ( ca doit ressembler a : ON_IDC_STOP:BN_CLICKED )
- dans la declaration d'un evenement :
HANDLE hEv = CreateEvent(NULL,true,false,&dwEvenement);
A quoi sert le dernier parametre ? et mm chose pour :
HANDLE hThreadStop = CreateThread(NULL,0,ThreadStop,NULL,0,&dwThreadStop);
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
hevd = CreateEvent(0, 1, 0, 0); // MANUEL, NON SIGNALE
le dernier param est pour donner un nom à l'event, inutile à l'intérieur de ton prog où tu peux le manipuler par son handle que tu connais.
Dernier param de CreateThread sert à récupérer son threadID, pas obligatoire sur noyaux NT.
MFC doit nommer, si mes souvenirs sont bons, CClass::OnButtonClick() ou un bidule de ce genre.

ciao...
BruNews, MVP VC++
Messages postés
76
Date d'inscription
lundi 5 septembre 2005
Statut
Membre
Dernière intervention
3 juillet 2007

Ok merci bcp je vais me debrouiller avec ca :)

++