Rendre inactif tous les radio button d un groupe apres en avoir selectionne un.

Résolu
cs_maju Messages postés 16 Date d'inscription jeudi 23 juin 2005 Statut Membre Dernière intervention 25 août 2005 - 15 juil. 2005 à 09:42
cs_maju Messages postés 16 Date d'inscription jeudi 23 juin 2005 Statut Membre Dernière intervention 25 août 2005 - 19 juil. 2005 à 09:52
Bonjour,


Par avance desolee, je sais bien que cette question a deja ete posee mais je n ai pas comprit la reponse.


Si quelqu un possede un complement de reponse...


Merci


(PS:en VisualC++)

7 réponses

magic_Nono Messages postés 1878 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 mars 2011
18 juil. 2005 à 10:17
si les valeurs des id se suivent,

une boucle for

(avec un test pour ne pas désactiver le choix courant)

devrait aller...

___________________________________________________________
Magicalement
Nono
3
cs_Arnotic Messages postés 933 Date d'inscription dimanche 1 avril 2001 Statut Membre Dernière intervention 9 janvier 2012
15 juil. 2005 à 10:28
API Windows : EnableWindow(HWND, 0);

@+
Arnotic,
Admin CS, MVP Visual C++
0
julienbj Messages postés 452 Date d'inscription jeudi 4 décembre 2003 Statut Membre Dernière intervention 19 décembre 2008 15
15 juil. 2005 à 10:31
Plusieurs possibilites.



La premiere que je vois serait de creer tes radios avec le style
BS_AUTORADIOBUTTON qui doit donc gerer tout seul ton groupe de radios.

Dans cette methode, il est preferable de d'abord creer un groupbox
(BS_GROUPBOX) dans lequel tu ajouteras tes radios. Ainsi, tous les
radios de la groupbox marcherons ensemble. Pour ajouter les radioos
dans la groupbox, utilise le CreateWindow(Ex) classique en specifiant
le handle de ta groupbox comme fenetre parent.

HWND groupBox = CreateWindow("BUTTON", "titre", BS_GROUPBOX|WS_CHILD|WS_GROUP|WS_VISBLE, 10, 10, 100, 100, hWindow, NULL, hInst, NULL);
CreateWindow("BUTTON", "radio1",BS_AUTORADIOBUTTON|WS_VISIBLE_WS_CHILD, 5, 15, 50, 20, groupBox, NULL, hIsnt, NULL);
CreateWindow("BUTTON", "radio2",BS_AUTORADIOBUTTON|WS_VISIBLE_WS_CHILD, 5, 40, 50, 20, groupBox, NULL, hIsnt, NULL);


Voila, tu as deux radios dans un groupbox qui marche correctement.



La deuxieme solution serait des gerer un par un en recuperant les actions sur le radiobox et en decochant les autres.

Tu as aussi la fonction CheckRadioButton, mais il vaut mieux bosser
avec des ressources pour l'utiliser puisqu'elle demande les
identifiants de tes radios. Bien que tu puisses les assigner avec
SetWindowLong.




Vive le C
Tchao
[mailto:julienbj@hotmail.com Savon]
0
cs_maju Messages postés 16 Date d'inscription jeudi 23 juin 2005 Statut Membre Dernière intervention 25 août 2005
15 juil. 2005 à 10:51
Le probleme est que mes boutons sont definis de cette facon ( il y en a 32) .

CONTROL "1",IDC_RADIO1,"Button",BS_AUTORADIOBUTTON | BS_PUSHLIKE |
WS_GROUP,13,205,24,10
CONTROL "2",IDC_RADIO2,"Button",BS_AUTORADIOBUTTON | BS_PUSHLIKE,
13,215,24,10
CONTROL "3",IDC_RADIO3,"Button",BS_AUTORADIOBUTTON | BS_PUSHLIKE,
13,227,24,10


et que je ne vois pas comment adapter ta solution ici( et oui quand je dis grande debutante je ne mens pas...)

MERKI
Maju.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
julienbj Messages postés 452 Date d'inscription jeudi 4 décembre 2003 Statut Membre Dernière intervention 19 décembre 2008 15
15 juil. 2005 à 11:08
Ok, donc tu travailles avec des ressources.

As-tu mis tous tes radios dans un groupbox?
D'ailleurs, tu pourrais rajouter le style WS_VISIBLE a tes radios.



Sinon, essaie de mettre le style WS_GROUPBOX as quelques uns de tes radios, pour tester si ils en tous besoin pour fonctionner.

Je pense pas, mais je n'ai pas d'editeurs de ressources sous la main pour tester.



Si ca ne marche pas, envoie moi le code par mail, je pourrais plus faciement tester.

Vive le C
Tchao
[mailto:julienbj@hotmail.com Savon]
0
cs_Joky Messages postés 1787 Date d'inscription lundi 22 novembre 2004 Statut Membre Dernière intervention 31 janvier 2009 2
15 juil. 2005 à 13:56
32 RadioBouton Ouahhhhhhhhhhh lol

Moi j'dirais associer un entier a chaque Radio et ensuite le passer à
une fonction qui Rendra inutilisable tout les autres sauf celui passer
en paramètres...

Mais ca ferai beaucoup de ligne, puisque 32 quand même xD

void Aurevoir( void ); //Bonne journée
0
cs_maju Messages postés 16 Date d'inscription jeudi 23 juin 2005 Statut Membre Dernière intervention 25 août 2005
19 juil. 2005 à 09:52
Youhou,



Merci a tous pour vos reponses. Je n avais en fait pas pose la question
dans sa globalite. Avec mes 32 boutons je veux observer 32 signaux
differents (un sur chaque ligne). La premiere etape est de selectionner
la ligne puis d appuyer sur un bouton Run/Stop permettant la
visualisation du signal, je voudrais qu a cet instant tous les autres
boutons soient inactifs, et que seul le fait de rapuyer sur le bouton
Run/Stop permette l arret du signal et la reactivation de tous les
boutons.

Le bouton Run/Stop est deja programme et fonctionne parfaitement, mon
seul probleme reste qu avec le code ci dessous (que j utilise) tous les
boutons se grisent et il faut fermer et reeouvrir la fenetre pour
visusaliser une autre des 32 voix.


{


for(id=IDC_RADIO1;id<=IDC_RADIO32;id++)


GetDlgItem(id)->EnableWindow(active);


}





MERKI MERKI
0
Rejoignez-nous