Salut!
Comment faire pour mettre un ObjectArray dans un ListBox?
car m_ListNom.AddString(m_oaPersonnes); ne peut fonctionner car c'est en string, il y a t'il une mani�re?
Merci
Thom
Salut!
Comment faire pour mettre un ObjectArray dans un ListBox?
car m_ListNom.AddString(m_oaPersonnes); ne peut fonctionner car c'est en string, il y a t'il une mani�re?
Merci
Thom
Qu'appelles-tu ObjectArray?
Quoi qu'il en soit, la fonction AddString, comme son nom l'indique et comme tu l'as not�, prends un CString en param�tre. Et non un tableau, quel qu'il soit. AddString n'ajoute qu'un �l�ment, si tu veux entrer un tableau dans ta ListBox, il va te falloir une boucle.
Hope it helps.
Salut, j'appelle ObjectArray comme �tant un tableau... J'ai une classe CPersonne d�riv� de CObject et j'ai un m_oaPersonnes qui est un tableau o� je met mes "enregistrements".
Est-ce plus clair
Merci..
Thom
pas vraiment ,�a nous dit pas ce que tu veux faire de ce tableau ...
![]()
Ce qui est affirm� sans preuve peut �tre ni� sans preuve Euclide.
Les conversions num�riques en C,C++,C++/CLI
DLL d'extensions : �criture d'un plug-in de classe
D�marrer avec les MFC 2/2
Cr�ation d'un ActiveX MFC
Int�gration d'une imprimante PDF pour �ditions automatis�es
Migrer du code de Visual C++ 6.0 vers Visual C++ 2005
D�marrer avec les MFC sous Visual C++1/2
la Faq Visual C++ 500 Q/R,Mon blog
Aide en Ligne MFC
Cours et tutoriels C++ - FAQ C++ - Forum C++.
Je ne sais pas trop pourquoi ton CPersonne h�rite de CObject mais soit... (hmm, � tout hasard, tu ne programmais pas en java avant? )
Tu ne donne pas beaucoup de pr�cisions, mais je vais prendre un exemple: imaginons que tu souhaites mettre les noms des personnes dans ta listbox. Et bien il va te falloir impl�menter un m�thode CString CPersone::GetName(); qui renvoie le nom de la personne. Puis, pour mette ce nom dans ton listbox, tu n'aura plus qu'� faire:
Code : S�lectionner tout - Visualiser dans une fen�tre � part malistbox.AddString(MonTableauDePersonnes[i].GetName());
Salut, ok je vais essayer encore...
j'ai ma classe CPersonne:
Et je voudrais que seulement le nom apparaisse dans un ListBox... Mon ListBox va chercher tout ce qui �tait enregistrer dans mon m_oaPersonnes qui est dans ma classe Document
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 class CPersonne : public CObject { DECLARE_SERIAL(CPersonne) public: CPersonne(); void SetAge(int age) { m_iAge = age;} void SetEmploye(BOOL employe) { m_bEmploye = employe;} void SetNom(CString nom) { m_csNom = nom;} void SetSexe(int sexe) { m_iSexe = sexe;} void SetSituation(int situation) { m_iSituation = situation;} int GetAge() { return m_iAge;} BOOL GetEmploye() { return m_bEmploye;} CString GetNom() { return m_csNom;} int GetSituation() { return m_iSituation;} int GetSexe() { return m_iSexe;} virtual void Serialize(CArchive &ar); virtual ~CPersonne(); private: CString m_csNom; int m_iAge; int m_iSituation; BOOL m_bEmploye; int m_iSexe; };
Ensuite j'ai un Dialog qui contient mon ListBox et je veux simplement que dans celui-ci que mes donn�es(nom) s'y retrouve.
OnInitDialog:
Je veux mettre mon tableau dans mon ListBox.
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 BOOL CListeEmp::OnInitDialog() { CDialog::OnInitDialog(); // TODO: Add extra initialization here UpdateData(TRUE); // CString CPersone::GetNom(); m_pDoc = static_cast<CBottinDoc *>(static_cast<CFrameWnd *>(AfxGetMainWnd())->GetActiveDocument()); for( int i=0;m_pDoc->m_oaPersonnes.GetSize();i++) m_ListNom.AddString(m_pDoc->m_oaPersonnes); UpdateData(FALSE); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE }
Merci...
Thom
Oki, et bien il me semble que je t'ai donn� la r�ponse. A peu de chose pr�s... je te laisse chercher un peu?
for( int i=0;m_pDoc->m_oaPersonnes.GetSize();i++)
m_ListNom.AddString(m_pDoc->m_oaPersonnes[i].GetNom());
Ok j'ai compris, j'avais d�j� une fonction GetNom, je comprend la logique.. mais je doute dupcq comme tu disais et je disais j'ai un ObjectArray et je peux mettre encore AddString? et ensuite m_oaPersonnes[i].GetNom() il me dit que
Code : S�lectionner tout - Visualiser dans une fen�tre � part malistbox.AddString(MonTableauDePersonnes[i].GetName());Jsuis un peu conffu..
Code : S�lectionner tout - Visualiser dans une fen�tre � part error C2228: left of '.GetNom' must have class/struct/union type
merci
Thom
Comment est d�clar� ton tableau "m_oaPersonnes"?
Mon tableau m_oaPersonnes est d�clarer dans mon Doc comme ceci:Merci
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2public: CObArray m_oaPersonnes;
Thom
mmhpff.. je ne connais pas cette classe: CObArray ^^
Visiblement, elle ne comporte pas d'op�rateur [], il va donc te falloir utiliser GetAt (cf. http://msdn2.microsoft.com/en-us/library/5dfbaz26(VS.80).aspx )
D�sol�, l� je ne peux pas vraiment t'en dire plus![]()
Essaye :
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3 CPersonne* pPersonne = (CPersonne*)MonTableauDePersonnes[i]; maListBox.AddString(pPersonne->GetName());
puisque mon m_oaPersonnes est dans le Doc je devrais faire plutot
for(i=0;i< m_pDoc->m_oaPersonnes.GetSize();i++) // Pas sure pour la boucle...
CBottinDoc* pPersonne = (CBottinDoc
*)m_oaPersonnes[i];
m_ListNom.AddString(pPersonne->GetNom()); euh mais ca fonctionne pas...
Merci
Thom
A tout hasard: essaie de remplacer m_oaPersonnes[i] par m_oaPersonnes.GetAt(i)
Hihi je tadore r0d
Ca fonctionne, il me suffit de coss� sur ma boucle...
Merci!!!
Thom
Salut jai prit un peu de ton code merci aussi lol!
j'lai un peu modifier et j'lai fait fiter dans ma fonction OnInitDialog
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6 for( int i=0;i < m_pDoc->m_oaPersonnes.GetSize();i++) { CPersonne* pPersonne = (CPersonne*)m_pDoc->m_oaPersonnes.GetAt(i); m_ListNom.AddString(pPersonne->GetNom()); }
Merci ciao :p
Partager