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][CDialog] interception du focus


Sujet :

MFC

  1. #1
    r0d
    r0d est déconnecté
    Membre expérimenté

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 288
    Billets dans le blog
    2
    Par défaut [MFC][CDialog] interception du focus
    Je bosse sur une appli basée sur une boite de dialogue (CDialog).
    Je voudrais créer une fonction qui soit appelée quand ma boite de dialogue récupère le focus. Par exemple:
    - L'utilisateur lance mon programme
    - Il bascule ensuite sur une autre appli (alt+tab)
    - Quand il revient sur mon programme, je voudrais que mon programme lance une fonction pour mettre à jour des données.

    Comment fait-on siouplé?

  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
    re,
    tu interceptes le message WM_SETFOCUS sur la dialogue ,
    si ça fonctionne pas essaye WM_ACTIVATE .

  3. #3
    Membre expérimenté Avatar de BertrandA
    Inscrit en
    Août 2003
    Messages
    170
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 170
    Par défaut
    Handler sur WM_ACTIVATE en testant nState == WA_ACTIVE.

  4. #4
    r0d
    r0d est déconnecté
    Membre expérimenté

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 288
    Billets dans le blog
    2
    Par défaut
    ok, ça marche.

    J'aurais juste une question: comment récupérer le hWnd de ma dialog box?
    En effet, le problème est que dans ma fonction OnActivate est appelée quand on change de fenêtre, et pas forcément quand on viens sur MA fenêtre. Je dois donc tester que c'est bien sur MA fenêtre qu'on est.

  5. #5
    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
    avec GetSafeHwnd( ) .

  6. #6
    r0d
    r0d est déconnecté
    Membre expérimenté

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 288
    Billets dans le blog
    2
    Par défaut
    Yeeeees!!!! J'ai trouvé la solution de mon problème (grace à vous). Je la poste parce que je pense que ça peut servir:

    Problème:
    Faire en sorte que le programme rentre dans une fonction quand l'utilisateur reviens sur ce dernier après avoir activé une autre fenêtre.

    Solution:
    Intercepter WM_ACTIVATE dans la dialog principale -> création de la fonction OnActivate()
    Et dans OnActivate:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if (IsWindowEnabled())
    {
       ... <notre code>
    }
    merci!!!!

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

Discussions similaires

  1. [MFC]CDialog et CHTMLDialog?
    Par amedeous dans le forum MFC
    Réponses: 3
    Dernier message: 09/05/2006, 15h59
  2. MFC CDialog - lister tous les composants presents
    Par firejocker dans le forum MFC
    Réponses: 11
    Dernier message: 03/04/2006, 16h10
  3. Réponses: 8
    Dernier message: 31/03/2006, 11h17
  4. [MFC] CDialog + Icone Systray + Menu
    Par Invité dans le forum MFC
    Réponses: 12
    Dernier message: 26/01/2006, 11h11
  5. [MFC] tab control et focus
    Par Grey dans le forum MFC
    Réponses: 2
    Dernier message: 14/11/2005, 13h30

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