Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1799 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [MFC] Ajouter des elements a une CListView ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[MFC] Ajouter des elements a une CListView ?

n°318145
freds45
Posté le 26-02-2003 à 11:21:22  profilanswer
 

Voila, chui en train de galerer sur un truc.. j'ai une CListView, et j'ai regarde la doc, mais impossible de trouver comment faire pour ajouter un element dedans [:sisicaivrai]
 
et InsertItem ne semble pas marcher... :/
 
qqun a une idee ?
 :hello:


---------------
Filmstory : gardez trace des films que vous avez vu ! :D
mood
Publicité
Posté le 26-02-2003 à 11:21:22  profilanswer
 

n°318195
El_gringo
Posté le 26-02-2003 à 11:50:08  profilanswer
 

freds45 a écrit :

Voila, chui en train de galerer sur un truc.. j'ai une CListView, et j'ai regarde la doc, mais impossible de trouver comment faire pour ajouter un element dedans [:sisicaivrai]
 
et InsertItem ne semble pas marcher... :/
 
qqun a une idee ?
 :hello:  


 
Dis plutôt que t'arrive pas à te servir d'InsertItem...

n°318201
freds45
Posté le 26-02-2003 à 11:57:44  profilanswer
 

El_gringo a écrit :


 
Dis plutôt que t'arrive pas à te servir d'InsertItem...


 

Code :
  1. CUdbView::CUdbView()
  2. {
  3. // TODO: add construction code here
  4. InsertItem(0,"test" );
  5. }


 
ma classe CudbView est derivee de CListView, mais ...
 


Compiling...
udbView.cpp
C:\Program Files\Microsoft Visual Studio\MyProjects\udb\udbView.cpp(41) : error C2039: 'InsertItem' : is not a member of 'CUdbView'
        c:\program files\microsoft visual studio\myprojects\udb\udbview.h(15) : see declaration of 'CUdbView'
Error executing cl.exe.


 
 
:/


Message édité par freds45 le 26-02-2003 à 11:58:22

---------------
Filmstory : gardez trace des films que vous avez vu ! :D
n°318207
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 26-02-2003 à 12:08:40  profilanswer
 

Est-ce que ta classe CUdbView Vhérite au moins de CListView ?


---------------
J'ai un string dans l'array (Paris Hilton)
n°318237
freds45
Posté le 26-02-2003 à 12:38:24  profilanswer
 

Harkonnen a écrit :

Est-ce que ta classe CUdbView Vhérite au moins de CListView ?


 
 

Code :
  1. class CUdbView : public CListView


 
donc je vois pas ce qui cloche [:spamafote]

n°318305
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 26-02-2003 à 14:00:32  profilanswer
 

:heink:
Ton projet, c'est une MFC Application, ou un Win32 project ?


---------------
J'ai un string dans l'array (Paris Hilton)
n°318316
freds45
Posté le 26-02-2003 à 14:07:25  profilanswer
 

Harkonnen a écrit :

:heink:
Ton projet, c'est une MFC Application, ou un Win32 project ?


 
MFC :/


---------------
Filmstory : gardez trace des films que vous avez vu ! :D
n°318326
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 26-02-2003 à 14:12:06  profilanswer
 


bizarre .... :??:
tu peux me zipper l'ensemble de ton projet et me l'envoyer sur mon mail (cf profil) ?
je regarderais chez moi ce soir si tu veux...


---------------
J'ai un string dans l'array (Paris Hilton)
n°318347
freds45
Posté le 26-02-2003 à 14:23:21  profilanswer
 

Harkonnen a écrit :


bizarre .... :??:
tu peux me zipper l'ensemble de ton projet et me l'envoyer sur mon mail (cf profil) ?
je regarderais chez moi ce soir si tu veux...


 
oue si tu veux... enfin tu vas voir, c'est ridicule comme truc  :whistle:


---------------
Filmstory : gardez trace des films que vous avez vu ! :D
n°318354
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 26-02-2003 à 14:26:00  profilanswer
 

freds45 a écrit :


 
oue si tu veux... enfin tu vas voir, c'est ridicule comme truc  :whistle:  


peu importe ! je suis curieux de connaitre l'origine de cette erreur


---------------
J'ai un string dans l'array (Paris Hilton)
mood
Publicité
Posté le 26-02-2003 à 14:26:00  profilanswer
 

n°318708
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 26-02-2003 à 21:05:36  profilanswer
 

Bon, j'ai vu d'ou venait ton problème, ou plutot TES problèmes...
 
Allons y :
 

  • Déjà, tu remplis le ListView dans le constructeur de la classe ! Ce n'est pas du tout ce qu'il faut faire. La fonction OnInitialUpdate est faite pour ça. Elle est appelée avant le dessin de la fenêtre, et tu dois donc y placer toutes les initialisations de ta vue. Le problème, c'est que tu n'en a pas. Moi je pense que tu as du créer un projet, dérivé de CView et que tu as rajouté le "public CListView" toi même dans le .h. Malheureusement, la classe de base appelée dans PreCreateWindow était encore CView. Tu aurais pu attendre longtemps l'affichage de ton item. Il ne faut pas faire comme ça : dans la dernière étape de création du projet MFC, tu as la possibilité de choisir la classe de base. C'est ici qu'il faut indiquer CListView, ça te crééra le nécessaire, dont la fonction OnInitialUpdate, dans laquelle tu pourras remplir ton constructeur.


  • Ensuite, comme disait El_Gringo, tu ne sais pas utiliser InsertItem. En effet, il faut lui passer une structure LV_ITEM en paramètre, que tu rempliras selon tes souhaits. Cf MSDN pour plus d'infos sur cette structure.


  • Enfin, le message d'erreur que tu obtiens est du au fait que InsertItem n'est pas une fonction membre de CListView, mais de CListCtrl. CListCtrl est la classe encapsulant le controle ListView. Tu dois donc récupérer la CListCtrl associée à ta CListView via la fonction membre GetListCtrl(), qui te renvoie une référence au CListView associé.


Ce que je te conseille : recréé un projet en indiquant correctement CListView comme classe de base dans la dernière étape de l'assistant de création de projet MFC. Place ensuite dans la fonction OnInitialUpdate() le code suivant :
 

Code :
  1. CListCtrl& ListCtrl = GetListCtrl();
  2. LV_ITEM lvi;
  3. lvi.mask = LVIF_TEXT;
  4. lvi.iItem = 0;
  5. lvi.iSubItem = 0;
  6. lvi.pszText = _T("test" );
  7. ListCtrl.InsertItem(&lvi);


 
Ca fonctionnera correctement.
 
Dernier conseil : apprends quand même à lire les docs.
 
:hello:


Message édité par Harkonnen le 26-02-2003 à 21:07:35

---------------
J'ai un string dans l'array (Paris Hilton)
n°318747
freds45
Posté le 26-02-2003 à 21:29:29  profilanswer
 

Merci bcp pour tout ca  :jap:  
 
l'InsertItem était là, mais c'était plus au départ pour voir comment faire pour rajouter un élément dans la liste, le projet se résumait pas seulement à  créer une liste;)
 
J'avais regardé dans l'aide, mais c'est qd même chaud à comprendre :/
 
Je regarderai et appliquerai tout ca demain matin :)
 
 
:hello:  


---------------
Filmstory : gardez trace des films que vous avez vu ! :D

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [MFC] Ajouter des elements a une CListView ?

 

Sujets relatifs
[C/C++][Win32] PreTranslateMessage sans MFC: detect key pressles MFC en mode console?
[VB] Editeur de texte, ajouté des élements dans un menu[MFC] RichEdit: SetWordCharFormat == SetSelectionCharFormat ?
[MFC] Comment savoir si une fenêtre MDI est partiellement visible ???[c] suppression d'elements ds liste chainée
VC++, MFC : zigouiller un repertoire non vide...[MFC] Masquer le curseur de souris
[Prolog] Effacer et ajouter des clauses dans une clauseMFC Visual C++ et Excel
Plus de sujets relatifs à : [MFC] Ajouter des elements a une CListView ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR