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 :

CDialog et WM_SETFOCUS


Sujet :

MFC

  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 112
    Par défaut CDialog et WM_SETFOCUS
    Pour ceux qui m'avait déjà aidé celà va ressembler à du connu mais je vous
    jure que c'est différent .

    Bon alors j'ai un CDialog, dial1, qui possède des boutons. lorsquejec lique sur ce bouton j'ouvre un autre CDialog,dial2, avec la fonction DoModal.

    QUand je ferme dial2, dial 1 "retrouve le focus" et j'aimerai effectuer quelques MAJ d'affichage.
    mais j'ai l'impression qeu WM_SETFOCUS ne peuet être utilisé sur un CDialog.

    En effet, j'ai mis un point d'arrêt au début de la fonction appelé par WM_SETFOCUS et jamais je n'y suis arrivé comme si le dialog n'acceptait
    pas le message.

    Comment faire?

    PS: J'ai réussi à faire celà sur un CFormView mais pas là.

  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
    Par défaut
    salut,
    je ne vois vraiment pas le probleme !
    si c'est deux dialogues modales ,tu n'as qu'a faire tes modifications d'affichages apres le domodal de la deuxieme dialogue et c'est tout.
    pas besoin de gerer SetFocus pour ça !

  3. #3
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 112
    Par défaut
    Citation Envoyé par farscape
    salut,
    je ne vois vraiment pas le probleme !
    si c'est deux dialogues modales ,tu n'as qu'a faire tes modifications d'affichages apres le domodal de la deuxieme dialogue et c'est tout.
    là j'ai aps compris. j'ai du mal m'expliquer.

    un peu plus de détail:

    - toujours VC6 et mysql++

    -1 dial1 est un formulaire représentant par ex une équipe de foot.
    -2 dedans j'ai une listbox représentant tous les joueurs.
    -3 Je peux ajouter en cliquant sur un bouton ou modifier en dblcliquant
    sur la ligne de la list box correspondant au joueur
    -4 Quelque soit le moyen choisi, celui-ci ouvre dial2.
    -5 dans dial2, je modifier ou créer mon joueur
    -6 quand je clique pour valider l'action, celà ferme dial2 et MAJ la BDD
    -7 dial1 retrouve le focus et j'iamerai qu'il MAJ la liste de joueurs mais comme il ne répond pas à WM_SETFOCUS je ne sais pas comment faire.

    REM : peut être qu'à l'étape 6 je pourrai mettre à jour dans dial1 la listbox
    avant que dial2 ne se ferme maiis je en sais pas comment atteindre la
    variable représentant dial1.

    le foot était un exemple hein.

  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
    Par défaut
    mais comme il ne répond pas à WM_SETFOCUS je ne sais pas comment faire.
    je viens de te dire tu n'as pas besoin de setfocus!
    tu fais tes maj apres la fermeture de la dialogue 1 .
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    dlg1::OnButon()
    {
       Dlg2 dlg;
       if(dlg.DoModal()==IDOK)
       {
       // maj a faire sur la dialogue 1 !!!!!
       }
    }
    ce qui correspond a au moins 1 des posts de la faq sur le sujet:
    http://c.developpez.com/faq/vc/?page...apOnOKOnDialog

  5. #5
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 112
    Par défaut
    Je viens de comprends ce que tu voualis me dire ainsi que la FAQ.

    JE pensais que une fois le DoModal appelé la fonction dans laquelle
    il avait été appelé se finnissait.
    Alors qu'en fait elle attendait la fermeture de la fenêtre ouverte pour
    continuer

    Merci. Ca m'a ouvert de nombreuses possibilités.

  6. #6
    mat.M
    Invité(e)
    Par défaut
    Citation Envoyé par gigigao
    Alors qu'en fait elle attendait la fermeture de la fenêtre ouverte pour
    continuer

    Merci. Ca m'a ouvert de nombreuses possibilités.
    Ben oui ; une fos que DoModal() est terminé le programme en exécution passe à la suite; DoModal() bloque le programme appelant.
    Si c'est résolu fais le savoir

  7. #7
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 112
    Par défaut
    Citation Envoyé par mat.M
    Ben oui ; une fos que DoModal() est terminé le programme en exécution passe à la suite; DoModal() bloque le programme appelant.
    Si c'est résolu fais le savoir
    Ca marche nickel.
    ça m'a bien allégé tout le reste de mon code.
    Merci

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 24/02/2004, 04h30
  2. CDialog KeyDown
    Par philippe V dans le forum MFC
    Réponses: 3
    Dernier message: 17/02/2004, 08h43
  3. destruction d'une classe qui herite de CDialog
    Par philippe V dans le forum MFC
    Réponses: 2
    Dernier message: 03/02/2004, 17h39
  4. Réponses: 3
    Dernier message: 28/01/2004, 14h55
  5. [MFC] CPropertySheet (ou CDialog)
    Par tut dans le forum MFC
    Réponses: 4
    Dernier message: 06/11/2002, 13h09

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