-
Création d'une CListView
Bonjour,
J'ai une petite question concernant le fonctionnement des CListView.
En fait, c'est peut-être moi qui comprend mal mais après lecture de la doc et consultation de plusieurs site web j'en suis venu à cette conclusion:
Pour créer une CListView il faut créer une autre classe (CMyListView par exemple) qui hérite de CListView et réécrire la fonction OnInitialUpdate(). Cette fonction serait en charge de créer les colonnes et de configurer les propriétés de la liste.
Je ne comprend pas pourquoi il faut créer une autre CMyListView car si j'ai 5 listes différentes dans mon application, il me faudra 5 classes différentes (CMyListView1, CMyListView2, ...) ?!? Pourquoi ne peut-on simplement pas créer une variable membre (m_lstViewMyList) dans la fenêtre dans laquel la liste est affichée et simplement appeler les functions m_lstViewMyList.Set...(x) ou m_lstViewMyList.insertColumn(x) ?!?
Quelqu'un à un exemple d'utilisation d'une CListView autre que ceux de MSDN qui ne sont pas assez clair à mon goût?
Merci pour vos réponses
-
Je ne sais pas si CListView doit être dérivée pour être utilisée;
mais en revanche j'ai bien l'impression que tu confonds classes et instances :
si tous tes views ont un comportement identique, une seule classe instanciée n fois fera parfaitement l'affaire.
A l'inverse si chaque view a sa propre fonction, alors il est logique que chacun ait aussi sa propre classe.
-
bonsoir,
en complément de ce qui a été dit voir la faq:
http://c.developpez.com/faq/vc/?page...trlInitAndFill
:D
-
Je comprends bien la différence entre classes et instances, c'est justement là où je trouve que les CListView sont un peu déficiantes.
Les seules choses qui change entre les listes sont le nombre de colonnes et le nombre d'items dans les listes. CListView n'est pas une classe générique qui permet de personnaliser la liste (ajouter des colonnes par exemple) à partir d'un instanciation de la classe.
Bon, merci pour vos réponses!
-
salut, Ce que tu dis est valable à partir moment ou tu trouverais la possibilité de paramétrer la CListView à partir d’un objet extérieur à la classe par exemple.
Sinon si tu as des listview différentes dans le sens les informations ne proviennent pas de la même source etc .., tu seras bien obliger d’avoir deux classes dérivées de CListView pour chaque source de données.
Autre point chaque listview pourra suivant le sujet avoir des traitements différents à réaliser
Sur la gestion des messages (clic double clic etc).
Tu es donc bien obliger d’avoir des classes différentes pour gérer des sujets différents.
Sauf à faire une super classe listview qui utiliserait le pattern stratégie pour adapter la listview suivant les sujets traités…
:D