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

Windows Discussion :

Inhiber les messages WM_COMMAND


Sujet :

Windows

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 7
    Points : 7
    Points
    7
    Par défaut Inhiber les messages WM_COMMAND
    Bonjour à tous,

    Je suis en train de créer une appli win32 qui (en gros) permet de sauvegarder dans un fichier des blocs d'objets. Pour éditer ces blocs d'objets, j'ai un controle tab qui me permet de sélectionner les blocs, et une list qui me permet d'afficher les objets du bloc. Quand je clique sur un objet de la liste, ça m'affiche les paramètres de l'objet en question, et je peux les modifier à l'aide de controles edit et combobox.
    Quand je clique sur un objet dans la liste, je détecte quel est le numéro de l'objet selectionné, et je l'affiche grace à une routine spécifique.
    J'ai mis en place un système qui me permet de savoir quel paramètre a été modifié, une variable parametreChange qui est à 1 si c'est le cas.
    Si parametreChange est à 1, avant d'afficher le nouvel objet sélectionné, je sauvegarde celui qui était précédemment affiché.
    Ce parametreChange est modifié à chaque message EN_CHANGE pour un controle edit, ou à chaque CBN_SELCHANGE pour les combobox.
    Voilà pour le décor.

    Mon problème est que lorsque j'affiche un objet, je dois modifier les controles edit et combo, et qu'à ce moment là, un message WM_COMMAND avec un EN_CHANGE ou CBN_SELCHANGE est envoyé alors que l'utilisateur n'a rien modifié.
    J'ai simplifié, il y a pas mal de controles en jeu, pas mal d'évenements qui lancent une sauvegarde de l'objet en cours, et j'ai pas envie de coder une usine à gaz avec 50 variables qui m'empêchent de sauvegarder mes objets quand c'est pas nécessaire.
    J'ai pensé à creer un controle par parametre et par objet, à les masquer et les afficher à chaque fois que je change d'objet, mais c'est méga lourd.
    Donc je cherche un moyen d'inhiber ou de supprimer ces messages WM_COMMAND qui ne viennent pas d'une action de l'utilisateur, mais de mes routines d'affichage d'un objet.
    C'est un peu long et compliqué, si j'ai pas été assez clair dites le moi
    Merci!

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Inhiber directement, j'ai bien peur que non.
    Tu risques d'être obligé de régler un flag (qui peut être partagé) disant à ta fenêtre d'ignorer tout EN_SELCHANGE. Tu le positionne à TRUE avant de changer le texte affiché, puis tu le remets à FALSE juste après...
    (Si le message est bien envoyé et non posté, ça devrait marcher).
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 7
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par Médinoc
    Inhiber directement, j'ai bien peur que non.
    Tu risques d'être obligé de régler un flag (qui peut être partagé) disant à ta fenêtre d'ignorer tout EN_SELCHANGE. Tu le positionne à TRUE avant de changer le texte affiché, puis tu le remets à FALSE juste après...
    (Si le message est bien envoyé et non posté, ça devrait marcher).
    J'avais même pas pensé à inhiber tous les messages, je faisais ça uniquement pour les controles qui m'intéressaient mais c'était la galère pour rien.
    Merci!

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

Discussions similaires

  1. comment recuperer les messages
    Par devalender dans le forum Débuter
    Réponses: 2
    Dernier message: 17/06/2004, 19h30
  2. Réponses: 2
    Dernier message: 06/04/2004, 08h39
  3. sniffer les messages sortant
    Par ashram dans le forum Développement
    Réponses: 3
    Dernier message: 08/07/2003, 11h31
  4. SNMP: comment on voit les messages trap ???
    Par talakela dans le forum Développement
    Réponses: 2
    Dernier message: 03/06/2003, 17h39
  5. question sur les message box !
    Par krown dans le forum Langage
    Réponses: 7
    Dernier message: 02/08/2002, 16h11

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