IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MFC Discussion :

[MFC] Changer dynamiquement le bouton sélectionné par défaut


Sujet :

MFC

  1. #1
    Membre habitué
    Avatar de barthelv
    Inscrit en
    Mars 2003
    Messages
    267
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 267
    Points : 126
    Points
    126
    Par défaut [MFC] Changer dynamiquement le bouton sélectionné par défaut
    Bonjour,

    J'espère que cette question n'a pas encore été posée, mais bon je n'ai rien trouvé avec la fonction de recherche alors je la pose.

    Comment fait on pour que lorsque l'on clique sur un champ de type EDIT, on puisse automatiquement sélectionner comme bouton par défaut celui que l'on veut associer à ce champ.

    Je suppose qu'il faut implémenter la méthode ON_CLICK pour le champ, mais quelle est la méthode à appeler pour sélectionner un bouton particulier de façon à ce que lorsque l'on appuie sur ENTER, ce soit ce bouton particulier qui s'enclenche.

    Merci d'avance.

  2. #2
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    salut,
    pas clair ce que tu demandes !
    Comment fait on pour que lorsque l'on clique sur un champ de type EDIT, on puisse automatiquement sélectionner comme bouton par défaut celui que l'on veut associer à ce champ.
    ça veut dire quoi ?

  3. #3
    Membre habitué
    Avatar de barthelv
    Inscrit en
    Mars 2003
    Messages
    267
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 267
    Points : 126
    Points
    126
    Par défaut Précisions...
    Je reprends:

    J'ai une dialog box avec des champs de type EDIT et des boutons. Ce que je veux, c'est que suivant le champ où l'on a cliqué pour mettre une valeur dedans, je puisse choisir le bouton sélectionné par défaut. Ainsi, lorsque l'utilisateur a fini sa saisie dans le champ Edit, il peut appuyer sur la touche ENTER pour valider sa saisie.

    [EDIT] Il faudrait pas se servir d'un truc comme le focus par hasard ??? enfin je ne sais pas trop, j'ai jamais fait ça [/EDIT]

  4. #4
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    salut ,
    a mon avis on peut faire ça:
    reprendre la main sur la fontion OnCommand pour trapper le message IDOK comme indiquer dans le dernier post de la faq .
    la fonction Getfocus() renvoyant le dernier controle ayant le focus içi l'edit .
    utiliser le style BS_DEFPUSHBUTTON pour specifier le bouton par defaut en cas d'appui sur la touche entrer ;
    c'est à dire modifier le style du bouton concerné avec la fonction ModifyStyle
    (exemple aussi dans la faq).
    le style modifier laisser le message entrer continuer son chemin

    note il ne doit avoir qu'un seul bouton avec l'option bouton defaut .
    on peut aussi appeler directement la methode liée au bouton qui convient dans
    OnCommand suivant l'edit ou on se trouve .
    et ne pas faire suivre dans ce cas la touche Entree.

  5. #5
    Membre habitué
    Avatar de barthelv
    Inscrit en
    Mars 2003
    Messages
    267
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 267
    Points : 126
    Points
    126
    Par défaut pas tout à fait ce que je veux
    Ce n'est pas tout à fait ce que je veux (enfin je pense), sur ma dialog box j'ai 3 champs EDIT, et 3 boutons.

    Je veux que suivant le champ que l'on est en train d'éditer, lors de l'appuie sur la touche entrée, génère un clic sur le bon bouton. Pour cela j'ai besoin d'une méthode qui puisse changer le contrôle selectionné.

  6. #6
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    pourtant il me semble bien avoir repondu pour ce pb precis.!
    detection du control en cours d'edition dans OnCOmmand quand l'utilisateur fait entree et appel direct de la methode associée au click du bouton concerné.
    pour donner le focus a un autre controle utilises SetFocus().

  7. #7
    Membre habitué
    Avatar de barthelv
    Inscrit en
    Mars 2003
    Messages
    267
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 267
    Points : 126
    Points
    126
    Par défaut Ok avec Set Focus
    D'accord, je n'avais pas très bien compris, j'essaie cela, merci beaucoup!

  8. #8
    Membre habitué
    Avatar de barthelv
    Inscrit en
    Mars 2003
    Messages
    267
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 267
    Points : 126
    Points
    126
    Par défaut SetFocus fonctionne
    Merci beaucoup, cela fonctionne parfaitement, juste pour ceux que cela intéresse, voici les bouts de codes nécessaires, sachant que j'ai une Edit box nomée m_Edit1 et un bouton nommé m_Button1:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    void CTESTDLGsDlg::OnButton1() 
    {
    	// TODO: Add your control notification handler code here
    	int i;
     
    	i=0;
    }
     
    BOOL CTESTDLGsDlg::OnCommand(WPARAM wParam, LPARAM lParam) 
    {
    	// TODO: Add your specialized code here and/or call the base class
    	if(wParam==IDOK)
    	{
    		if(GetFocus()==&m_Edit1)
    		{
    			m_Button1.SetFocus();
    			OnButton1();
    		}
    	}
     
    	return CDialog::OnCommand(wParam, lParam);
    }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PEAR][HTML_QuickForm] Bouton radio sélectionné par défaut
    Par JuTs dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 03/06/2010, 10h10
  2. bouton sélectionné par défaut
    Par TaymouWan dans le forum Windows Forms
    Réponses: 1
    Dernier message: 21/05/2009, 17h33
  3. Réponses: 5
    Dernier message: 25/03/2008, 10h16
  4. Réponses: 6
    Dernier message: 13/06/2006, 08h02
  5. Pourquoi un bouton est sélectionné par défaut?
    Par ®om dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 04/06/2006, 16h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo