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

  FORUM HardWare.fr
  Programmation
  C++

  [MFC] Initialisation des radio dans une boite de dialogue

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[MFC] Initialisation des radio dans une boite de dialogue

n°706297
Ltchris
Posté le 22-04-2004 à 17:54:19  profilanswer
 

Voila pour mon prog de simulation numerique, j'utilise les Mfc pour faire toutes les fenetres et je programme sous visual.NET. J'ai besoin d'ouvrir une boite de dialogue ou l'utilisateur choisit entre deux possibilité concernant l'affichage des resultat. J'ai donc deux radio et suivant lequel est appuyé j'incremente une variable int with_etapes.
 
int with_etapes=0 si le premier radio (radio1) est clique
int with_etapes=1 si (radio2) est cliqué
 
Jusque la tout va bien, le seul truc c'est que je ne trouve pas comment, à l'ouverture de ma boite de dialogue, afficher, suivant la valeur de with_etapes, que radio1 ou radio2 est cliqué (que il y ai du vert dedans comme s'il avait ete cliqué quoi!). Pour les autres trucs genre les check je sais faire car on peut leur associer une classe qui a un attribut definissant s'il est cliqué ou pas, mais pour les radio les variables que l'on peut leur affecté ne sont que des int ou float ou derivé.
 
 
Help please!  :hello:


Message édité par Ltchris le 22-04-2004 à 18:10:18
mood
Publicité
Posté le 22-04-2004 à 17:54:19  profilanswer
 

n°706637
Ltchris
Posté le 23-04-2004 à 02:30:29  profilanswer
 

up!
 
Siouplait  :jap:


Message édité par Ltchris le 23-04-2004 à 02:31:32
n°707183
naoyfurieu​x
Posté le 23-04-2004 à 14:57:04  profilanswer
 

je pense que que tu as du déclarer une variable m_radio de type value, CString pour recupérer la positions des boutons radio, il faudrait declarer aussi des variable de type contrôle m_ctrl_radio qui contiennent des méthodes du type m_ctrl_radio.setStyle(__,__);
désolé de ne pas être plus précis mais je suis pas sur mon pc de dev et je suis encore très très loin de connaitre les MFC par coeur, j'essayerais d'éditer ce message pour donner carrément un exemple de code initialisant les boutons radios


---------------
even if you win the rat's race............you're still a rat
n°707302
Ltchris
Posté le 23-04-2004 à 16:02:05  profilanswer
 

et ben le probleme c'est justement que contrairement a tout lesautres boutons on ne peutpas lui associer de variable de type value ou controle. Dans ma boite de dialogue quand j'essaye de créer une variable sur les radio il veut pas, je ne peut en creer que pour les edit et autre boutons qui se trouve a cote!
 
Essaye tu verra! enfin merci de ton aide quand meme :jap:


Message édité par Ltchris le 23-04-2004 à 16:04:13
n°707356
fli
Posté le 23-04-2004 à 16:36:49  profilanswer
 

Ltchris a écrit :

et ben le probleme c'est justement que contrairement a tout lesautres boutons on ne peutpas lui associer de variable de type value ou controle. Dans ma boite de dialogue quand j'essaye de créer une variable sur les radio il veut pas, je ne peut en creer que pour les edit et autre boutons qui se trouve a cote!
 
Essaye tu verra! enfin merci de ton aide quand meme :jap:


Dans ce cas tarvaille en SDK standard avec GetDlgItem pour récupérer le handle de la fenetre de ton controle, et après utilise le message BM_SETCHECK
 
si ta radio a comme ID IDC_CHK1 :

Code :
  1. SendMessage(      GetDlgItem( this->m_hWnd, MAKEINTRESOURCE(IDC_CHK1)),      BM_SETCHECK, fChecked ? BST_CHECKED : BST_UNCHECKED, 0 );


 
Pour bien faire il faudrait aussi tester un peu les valeurs de retour, mais ce n'est pas le but de l'exemple ;)


Message édité par fli le 23-04-2004 à 16:39:47
n°707386
Ltchris
Posté le 23-04-2004 à 17:09:19  profilanswer
 

euh? je comprend pas trop ce que tu fait avecle Dlg item
Et pi y'a un probleme sendmessage ne prend que 3 parametre.
fchecked c'est ce qui va me definir si je veux mon radio allume ou pas, comprend pas tres bien? :??:


Message édité par Ltchris le 23-04-2004 à 17:10:35
n°709261
Ltchris
Posté le 27-04-2004 à 01:26:04  profilanswer
 

up!
 
resiouplait :jap:

n°712135
Ltchris
Posté le 29-04-2004 à 18:10:58  profilanswer
 

pour ceux que ca interesse:
 
en fait il suffit de faire  
 
((CButton*)GetDlgItem(IDC_RADIO1))->SetCheck(TRUE);  
 
surement ce que me disait fli mais en moins complique  
:jap:

n°712337
pedro-2480
Posté le 29-04-2004 à 22:31:58  profilanswer
 

OnInitialUpdate() est ton ami... il te permet de redéfinir le comportement de la fonction appelée par défaut lors de l'ouverture d'une boite de dialogue, tu peux alors avec la méthode de ton choix activer ou pas les radios selon les valeurs des variables membres associées...
 
Sinon si tu veux gérer autrement les radios qu'en récupérant un pointeur sur eux depuis leurs ID du ressource manager, tu peux tout bêtement les créer "à la main", l'avantage est d'avoir un attribut associé au contrôle et de béneficier de méthodes déja existantes...
 
- Utilise une variable CButton,
- Dans le OnInitialUpdate(), appelle la méthode Create de CButton avec le flag BS_RADIOBUTTON positionné dans les styles,
-Pense à gérer les messages styles WM_SIZE (et donc overrider les fonctions associées OnSize...) pour positionner ton contrôle à la main...


---------------
- Pierre Baudelet -

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

  [MFC] Initialisation des radio dans une boite de dialogue

 

Sujets relatifs
MFC Changer le bouton par défautrecupérer la variable d'un radio
[Delphi] Boite de dialogue "Patientez"[MFC] Afficher une seconde vue sur un document besoin d'aide
[C++] std::vector initialisation / constantes[MFC]Les .h sont limités en taille?
Probleme de compatibilité MFC directX 9Initialisation des TextBox d'une feuille en VB6
Superposition et Layering pour une application MFC 
Plus de sujets relatifs à : [MFC] Initialisation des radio dans une boite de dialogue


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