-
CListCtrl cacher élément
Bonjour,
J'ai actuellement une CListCtrl qui est remplie avec des messages. Les messages sont affichées ligne par ligne, sur deux colonnes (une avec la date et l'autre avec le type du message).
Je suis en train de créer un filtre pour n'afficher que les messages avec les types sélectionnés.
Mon problème est que je ne sais pas comment "masquer" les types non voulus.
Y'a-t-il un moyen de le faire ? Faut-il créer une autre liste ?
Comment faire ?
Pour info, ma liste se trouve dans une boite de dialogue.
Merci d'avance pour votre aide
-
Vous ne devez pas stocker la liste des messages dans la CListCtrl.
Utilisez un objet dédié, qui sera un membre de votre Model dans l'architecture Document/Vue d'une application MFC.
Une fois qu'un nouveau message arrive, le Document notifie toutes les Vues et les Vue vident le contenu de leurs contrôles, et vont lire la liste des messages et ajouter dans les contrôles les informations pertinentes et à jours.
En résumé, votre CListCtrl ne doit pas contenir la liste des messages mais une liste déjà filtré et doit être vidé à chaque update.
P.S. Une liste simple comme un std ::vector est bien plus performant pour le stockage en mémoire de chaine de caractère qu’un contrôle Windows.
-
Merci beaucoup pour cette réponses. Je n'avais pas vu la chose de cette manière.
Donc je stocke mes messages dans des std::vector, et quand j'affiche ma CListCtrl, je la remplie à partir des vector en filtrant. C'est ça l'idée ?
Sinon, sauriez-vous où je peux trouver les infos sur ce qu'il vaut mieux faire / ce qu'il faut éviter avec MFC ? (sites, livres,...)