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!
Partager