Inserer ligne à wxListCtrl

cs_arno03 Messages postés 38 Date d'inscription jeudi 8 juillet 2004 Statut Membre Dernière intervention 20 juin 2010 - 8 janv. 2005 à 14:13
fredcl Messages postés 547 Date d'inscription mercredi 8 janvier 2003 Statut Membre Dernière intervention 7 octobre 2007 - 9 janv. 2005 à 13:10
salut all

ca fait une dizaine de minutes que j'essai de faire un wxListCtrl, y
insérer des colonnes, et des lignes. Les 2 premieres opérations ont été
réussis, mais qd j'insere une ligne, ma chaine de caracteres se loge
seulement ds la 1ere colonne...



m_pListCtrl = new wxListCtrl(this, ID_MALIST, wxPoint(12, 20), wxSize(1000, 600), wxLC_REPORT);

m_pListCtrl->InsertColumn(0, "Colonne", wxLIST_FORMAT_LEFT, 200);

m_pListCtrl->InsertItems(1,"Chaine",1);

4 réponses

fredcl Messages postés 547 Date d'inscription mercredi 8 janvier 2003 Statut Membre Dernière intervention 7 octobre 2007 1
8 janv. 2005 à 17:19
Bonjour,



dans le projet "Chat In The Box" ici même (http://www.cppfrance.com/code.aspx?ID=27142)

dans le fichier chanlistdlg.cpp tu trouveras l'utilisation d'un wxListCtrl en mode wxLC_REPORT avec plusieurs colonnes.



Bonne continuation.



Fred
0
cs_arno03 Messages postés 38 Date d'inscription jeudi 8 juillet 2004 Statut Membre Dernière intervention 20 juin 2010
8 janv. 2005 à 22:42
merci <!--emo&:)--><!--endemo-->

j'ai regardé ton code mais j'arrive pas à comprendre comment se fait il que

m_pListCtrl->InsertItem(0,"test");

insere "test" dans la colonne 1 de la ligne 1. <!--emo&:hum:--><!--endemo-->

en fait je voudrais marquer "test" ds la colonne 1, test2 ds la colonne 2 mais sur la meme ligne <!--emo&:)--><!--endemo-->
0
fredcl Messages postés 547 Date d'inscription mercredi 8 janvier 2003 Statut Membre Dernière intervention 7 octobre 2007 1
9 janv. 2005 à 13:06
Voilà un petit exemple de code pour insèrer une ligne à la fin avec trois colonnes :



wxBoxSizer* item2 = new wxBoxSizer(wxVERTICAL);

// Création du wxListCtrl

wxListCtrl* Liste = new wxListCtrl(this, ID_CHANNELSLIST, wxDefaultPosition,


wxSize(420, 200), wxLC_REPORT|wxLC_SINGLE_SEL|


wxSUNKEN_BORDER);

// Insertion dans le wxBoxSizer

item2->Add(Liste, 1, wxGROW, 5);

// Ajout des 3 colonnes

Liste->InsertColumn(0, _("Col 1"), wxLIST_FORMAT_LEFT, 75);

Liste->InsertColumn(1, _("Col 2"), wxLIST_FORMAT_LEFT, 75);

Liste->InsertColumn(2, _("Col 3"), wxLIST_FORMAT_LEFT, 75);



// Récupération du nombre d'item dans la liste

int iCount = ircChannels.GetItemsCount();

// insertion d'un item en fin de liste

iCount = Liste->InsertItem(iCount, "un", 0);

if (iCount != -1) // Si l'insertion s'est bien passée

{ // Ajout de texte dans les colonnes deux et trois

Liste->SetItem(iCount, 1, "Deux");

Liste->SetItem(iCount, 2, "Trois");

}



Il y a surement d'autres façon de faire, mais celle-ci fonctionne



A+



FredCL
0
fredcl Messages postés 547 Date d'inscription mercredi 8 janvier 2003 Statut Membre Dernière intervention 7 octobre 2007 1
9 janv. 2005 à 13:10
une petite erreur il faut lire :




int iCount = Liste->GetItemsCount();


à la place de :





int iCount = ircChannels.GetItemsCount();


A+



FredCL
0
Rejoignez-nous