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 :

Contrôler le bouton "OK" dans un dialogue


Sujet :

MFC

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    59
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2007
    Messages : 59
    Par défaut Contrôler le bouton "OK" dans un dialogue
    Bonjour,

    Cela fait déjà deux jours que je cherche à trouver une solution pour un logiciel maison d’une firme d’ingénierie.

    Je cherche à activer le bouton « OK » dans les dialogues au moment opportun. Le problème est qu’il y a plus de 200 dialogues et je dois l’appliquer à tous les dialogues donc trouver une manière simple. En ce moment, le « OK » des dialogues est toujours actif, donc lorsque l’usager clique sur OK, les validations du plan démarre, ce qui est lourd car parfois l’usager n’a rien modifié dans le dialogues donc le logiciel ne serait pas supposé de démarrer les validations (Logiciel de mise en plan, exemple AutoCad).

    J’ai pensé à créer un XML de mon dialogue initial à la fin de mon OnInitDialog() et de le comparer avec un XML final avant le OnOK(), cependant je ne sais pas comment envoyer la description du dialogue dans un XML. Est-ce que cela ce fait ?

    J’ai aussi pensé overrider mes classes dialogue qui en ce moment la plupart hérite de CDialog. Je pensais pouvoir ajouter une classe entre les deux qui pourrait intercepter un message qui dit si mon dialogue à changer et à partir de ce moment activer le bouton « OK ». Le problème est qu’il n’y a pas de message assez précis qui me dit que un des champs du dialogue à été réellement modifier…

    Est-ce que quelqu’un pourrais m’aider sur ce sujet ?

    Merci d’avance.

    JP

    P.-S.: Je sais que je pourrais prendre un a un mes dialogues et comparer tous les champs du dialogue avant de faire mon OnOK(), mais j'aimerais me passer de cette solution car 200 dialogues avec un moyenne une treintaine de champs dans chaque dialogues, ca peux etre long...

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 224
    Par défaut
    sur le OnInitDialog, tu desactives le bouton OK

    sur tous les OnUneActionFaiteDansLaBoiteDeDialog tu reactives le bouton OK.

    fastidieux mais c'est ce que tu cherches si je ne m'abuse.

  3. #3
    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 te propose la chose suivante:
    tu fais une classe mère dialog qui sera parent de toutes tes dialogues.
    sur cette classe dialogue tu implémentes les messages ON_CONTROL_RANGE
    pour les contrôles, voir ce post de la faq :
    http://cpp.developpez.com/faq/vc/?pa...MultiChangEdit
    pour la plage des contrôles il suffit de mettre très large : 1 a 32000 par exemple ou alors de regarder la plage utilisée dans resource.h.
    dans le initdialog de cette classe tu désactives le bouton OK.
    quand tu reçois une notification de changement tu le réactives.
    le procédé n'est pas trop intrusif, il faut juste changer le parent de tes classes CDialog..

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    59
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2007
    Messages : 59
    Par défaut Merci
    Merci farscape,
    J'ai fait quelques tests ce matin et avec des ajustements je devrais être bon pour me débrouiller avec le ON_CONTROL_RANGE !
    Bonne journée
    JP

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

Discussions similaires

  1. [vbnet 1.1]Inserer deux simple quote sans texte dans une db
    Par ChristopheOce dans le forum Windows Forms
    Réponses: 8
    Dernier message: 15/03/2007, 08h51

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