Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1399 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Evenement cliqué sur un bouton créé par programme (MFC) ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Evenement cliqué sur un bouton créé par programme (MFC) ?

n°342377
raph77
Posté le 25-03-2003 à 11:46:30  profilanswer
 

Salut :hello:  
 
J'ai beaucoup de boutons dans une boite de dialogue, et si je passe par le class wizard, ça me fait énormément de fonctions. Sachant que le traitement se ressemble très fortement, est-ce possible de faire une fonction qui soit applicable à tous les boutons du même type (tous les clics sur un bouton radio par ex) ?

mood
Publicité
Posté le 25-03-2003 à 11:46:30  profilanswer
 

n°342382
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 25-03-2003 à 11:59:58  profilanswer
 

si le traitement effectué est le même à chaque fois, tu le places dans une fonction que tu appelles dans chaque Callback. Mais tu ne couperas pas aux fonctions d'interception d'évènements de toute façon.


---------------
J'ai un string dans l'array (Paris Hilton)
n°342387
raph77
Posté le 25-03-2003 à 12:04:59  profilanswer
 

L'interêt était justement de ne pas avoir une fonction pour chaque évenement... Parce que faire une fonction pour le traitement, ça changerait pas grand chose, entre 1 et 3 lignes de code pour chq bouton.
 
Mais j'ai 27*3 boutons radio et 27 check :sweat:

n°342393
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 25-03-2003 à 12:20:58  profilanswer
 

sinon, tu vas dans le DDX, et tu rattaches chaque message WM_CLICK à une seule fonction.


---------------
J'ai un string dans l'array (Paris Hilton)
n°342394
VisualC++
J'va y penser ...
Posté le 25-03-2003 à 12:21:27  profilanswer
 

Ben tu peux faire un truc c soit
- Faire un bouton Update, ki te fit un gros UpdateData et qui appele ton traitement a la place des OnButton (donc la c ds le cas ou si l appui sur tes radio ou check ne genere pas une mise en page ou traitement particulier a chaque fois)
- Soit tu intercept ds le OnCmdMsg l'appui sur tes boutons, mais alors va faloir organise les numero de ressources associes a tes bouton afin de pouvoir faire qqchose du style si id compris entre 30000 et 30098 alors faire le traitement (avec possiblite ou pas de rendre la main pour les OnButton).

n°342475
raph77
Posté le 25-03-2003 à 13:36:05  profilanswer
 

Harkonnen a écrit :

sinon, tu vas dans le DDX, et tu rattaches chaque message WM_CLICK à une seule fonction.
 


 
C'est comme ça que j'avais pensé faire à la base, mais dans ce cas, je peux pas connaître l'id du bouton cliqué ?

n°342478
raph77
Posté le 25-03-2003 à 13:38:28  profilanswer
 

VisualC++ a écrit :

Ben tu peux faire un truc c soit
- Faire un bouton Update, ki te fit un gros UpdateData et qui appele ton traitement a la place des OnButton (donc la c ds le cas ou si l appui sur tes radio ou check ne genere pas une mise en page ou traitement particulier a chaque fois)
- Soit tu intercept ds le OnCmdMsg l'appui sur tes boutons, mais alors va faloir organise les numero de ressources associes a tes bouton afin de pouvoir faire qqchose du style si id compris entre 30000 et 30098 alors faire le traitement (avec possiblite ou pas de rendre la main pour les OnButton).


 
Ok, je vais jeter un coup d'oeil là dessus !
Mais finalement, je ne suis pas sûr que ça simplifie mon code, même si je gagne beaucoup de place :D

n°342640
Tetragramm​aton IHVH
dieu unique => pensée unique
Posté le 25-03-2003 à 15:14:30  profilanswer
 

raph77 a écrit :

Salut :hello:  
 
J'ai beaucoup de boutons dans une boite de dialogue, et si je passe par le class wizard, ça me fait énormément de fonctions. Sachant que le traitement se ressemble très fortement, est-ce possible de faire une fonction qui soit applicable à tous les boutons du même type (tous les clics sur un bouton radio par ex) ?


 
Il faut que tu utilises ON_CONTROL_RANGE
http://msdn.microsoft.com/library/ [...] ommand.asp


---------------
"Dieu a exploité tous nos complexes d'infériorité, en commençant par notre incapacité de croire à notre propre divinité." - Emil Michel Cioran
n°342656
raph77
Posté le 25-03-2003 à 15:20:57  profilanswer
 

Effectivement ça ressemble à ce que je pourrais chercher !
Je regarde ça tout de suite !
 
Merci ;)

n°342667
raph77
Posté le 25-03-2003 à 15:27:48  profilanswer
 


 
Par contre, mon traitment diffère légerement selon le bouton cliqué, je peux pas récupérer l'id du bouton avec ça ?

mood
Publicité
Posté le 25-03-2003 à 15:27:48  profilanswer
 

n°342676
Tetragramm​aton IHVH
dieu unique => pensée unique
Posté le 25-03-2003 à 15:33:40  profilanswer
 

raph77 a écrit :


 
Par contre, mon traitment diffère légerement selon le bouton cliqué, je peux pas récupérer l'id du bouton avec ça ?


 
Il est passé en paramètre de la fonction 'memberFxn', si je me souviens bien.


---------------
"Dieu a exploité tous nos complexes d'infériorité, en commençant par notre incapacité de croire à notre propre divinité." - Emil Michel Cioran
n°342688
raph77
Posté le 25-03-2003 à 15:41:10  profilanswer
 

Tetragrammaton IHVH a écrit :


 
Il est passé en paramètre de la fonction 'memberFxn', si je me souviens bien.  


 
C'est bon, j'ai trouvé un exemple avec cette fonction, je devrais y arriver !
 
Merci bien :hello:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Evenement cliqué sur un bouton créé par programme (MFC) ?

 

Sujets relatifs
Comment rendre un bouton inactif ?[MFC VC6] Controle de rendu graphique
évènementdecalage lors d'un cliqué-glissé
[resolu] methode close pour fermer le programmeComment mettre un gif en bouton ?
Création de fenêtre MFC...[.bat] Petit programme tout simple (effacer fichiers) ?
Interagir avec un programme quand le PC est "locké"Recup d'evenement clavier et test...
Plus de sujets relatifs à : Evenement cliqué sur un bouton créé par programme (MFC) ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR