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 :

problème de focus dans un CEdit


Sujet :

MFC

  1. #1
    Membre du Club
    Inscrit en
    Avril 2002
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 48
    Points : 46
    Points
    46
    Par défaut problème de focus dans un CEdit
    Bonjour,

    J'utilise une CListBox dans laquelle j'ai inséré un champ CEdit pour éditer la 2ème colonne de chaque ligne.

    Or, lorsque mon dialog (une CPropertyPage) est lancé, je n'arrive pas à obtenir le focus sur mon champ CEdit alors que je lui applique un SetFocus() dans une fonction BeginEditing() que j'ai écrite. Je dois expressément cliquer sur le champ pour obtenir ce focus. Par contre si je passe dans un autre champ et reviens ensuite sur ma grille via la fonction BeginEditing(), alors à ce moment seulement le SetFocus semble fonctionner.

    Peut-être le problème est-il lié à l'initialisation de mon dialog (OnInitDialog()) et dois-je faire une opération supplémentaire.. mais où, quand et laquelle?

    Merci pour vos suggestions,
    Hugues.

  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,
    quand tu fais ton SetFocus() ,OnInitDialog() a ete executé avant ?
    la fonction BeginEditing() fait partie de la classe Dialogue ?

  3. #3
    Membre du Club
    Inscrit en
    Avril 2002
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 48
    Points : 46
    Points
    46
    Par défaut problème de focus dans un CEdit
    Le OnInitDialog est d'abord exécuté. Ensuite, j'utilise l'Event OnSetActive de la CPropertyPage pour editer mon champ qui se trouve dans ma grille et faire un SetFocus() dessus.

    Merci,
    Hugues.

  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
    dans ce cas precis quel est le controle qui a le focus alors ?

  5. #5
    Membre du Club
    Inscrit en
    Avril 2002
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 48
    Points : 46
    Points
    46
    Par défaut problème de focus dans un CEdit
    Avant le SetFocus sur le CEdit, c'est la CListCtrl qui a le focus (et non pas la CListBox comme je l'ai indiqué précédemment), et après, c'est bien le CEdit.

  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
    tu as fais un setfocus sur ta listctrl avant ?

  7. #7
    Membre du Club
    Inscrit en
    Avril 2002
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 48
    Points : 46
    Points
    46
    Par défaut problème de focus dans un CEdit
    J'avais effectivement fait un SetFocus sur la CListCtrl, pensant que cela resoudrait le problème. Depuis, je l'ai retiré mais, dans les deux cas, le problème reste le même. Cela peut-il poser un problème?

  8. #8
    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
    comme le cedit est utilisé comme zone d'edition dans la CListCtrl ,je laisserais le setfocus dessus.
    le parent du CEdit c'est la CListCtrl ?

  9. #9
    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
    un truc tu peux essayer de lui forcer la main ( a l'edit) en lui envoyant apres ton setfocus :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    myCedit.PostMessage(WM_KEYDOWN,VK_HOME,1);

  10. #10
    Membre du Club
    Inscrit en
    Avril 2002
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 48
    Points : 46
    Points
    46
    Par défaut problème de focus dans un CEdit
    Le CListCtrl est en effet le parent du CEdit. Je suis obligé de laisser mon SetFocus sur le CEdit sinon je n'ai jamais le focus sur mon CEdit (C'est uniquement celui qui suit le OninitDialog qui ne fonctionne pas).

  11. #11
    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
    j'ai deja rencontré ce genre de probleme sur un post du forum .
    essaye le postmessage dans le OnInitDialog.
    autre chose ton setfocus doit etre fait en dernier dans cette fonction .

  12. #12
    Membre du Club
    Inscrit en
    Avril 2002
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 48
    Points : 46
    Points
    46
    Par défaut problème de focus dans un CEdit
    J'ai mis un PostMessage(WM_SETFOCUS) sur le CEdit dans le OnSetActive (appelé par le OnInitDialog et lors du passage d'un PropertyPage à l'autre) et j'obtiens maintenant le résulat que j'escomptais.

    Merci Farscape et ... chapeau!

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

Discussions similaires

  1. Problème de focus dans un panel
    Par Scots dans le forum ASP.NET
    Réponses: 9
    Dernier message: 30/09/2011, 18h29
  2. Réponses: 1
    Dernier message: 05/05/2010, 16h28
  3. Réponses: 2
    Dernier message: 05/03/2009, 16h55
  4. problème de focus dans JTable
    Par adn013 dans le forum Composants
    Réponses: 13
    Dernier message: 24/05/2007, 15h05
  5. Réponses: 1
    Dernier message: 16/01/2007, 22h25

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