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 :

killfocus de IDOK


Sujet :

MFC

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 60
    Par défaut killfocus de IDOK
    Re-bonjour

    Une deuxième question indépendante : j'ai créé une application type "boite de dialogue", mais le focus se trouve sur le bouton OK ce qui me fait quitter l'appli régulièrement après de fausses manoeuvres

    J'ai tenté, dans InitDialog(), de faire :
    GetDlgItem(IDOK)->PostMessage(WM_KILLFOCUS);
    ou encore :
    UnAutreDialog->SetFocus();

    mais rien n'y fait.

    Peut-etre le focus n'est il attribué qu'après InitDialog, mais alors comment faire ?

    Encore merci,
    Yéyé

  2. #2
    Expert confirmé
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 526
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 526
    Par défaut
    Si c'est pour éviter OnOK() il faut redéfinir cette méthode ( CDialog::OnOK() )
    C'est décrit dans le MSDN

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 60
    Par défaut
    Mouais, J'avais déja rejeté cette piste car je voulais conserver ce bouton pour pouvoir quitter mon appli.

    Mais en y réfléchissant, il suffit d'ajouter un autre bouton qui fait appel à CDialog::OnOk() ... bon, c'est un peu idiot de faire çà juste pour éviter un focus, mais s'il n'y a pas d'autre moyen, tant pis ... merci.

  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
    salut,
    voir aussi la faq ,differentes méthodes sont proposées comme celle la:
    http://c.developpez.com/faq/vc/?page...rapEscapeEnter

  5. #5
    Expert confirmé
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 526
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 526
    Par défaut
    Citation Envoyé par _yeye_
    Mouais, J'avais déja rejeté cette piste car je voulais conserver ce bouton pour pouvoir quitter mon appli.

    Mais en y réfléchissant, il suffit d'ajouter un autre bouton qui fait appel à CDialog::OnOk() ... bon, c'est un peu idiot de faire çà juste pour éviter un focus, mais s'il n'y a pas d'autre moyen, tant pis ... merci.
    Non ; si tu veux fermer la fenêtre il suffit de placer OnOK() à l'endroit voulu.

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