Bonjour,
je souhaiterai savoir comment faire pour déplacer une ligne dans une CListCtrl,
par exemple avec des bouton style "move up", "move down"?
merci!
Bonjour,
je souhaiterai savoir comment faire pour déplacer une ligne dans une CListCtrl,
par exemple avec des bouton style "move up", "move down"?
merci!
salut,
tu commences par recuperer les infos de la ligne en question (GetItemText).
tu la supprimes : DeleteItem.
tu inseres la ligne à l'ofset initial-1 : InsertItem.
un truc comme ça:
A tester ,je n'ai pas verifié ..., notamment au niveau du calcul du nouvel index ça peut -2:2 ...
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 void MoveListCtrlLig(int nIndex,bool bUp) { int nCount = m_MyListCtrl.GetItemCount(); CStringArray strArray; int i=0; for (i=0;i < nCount;i++) { strArray.Add(m_MyListCtrl.GetItemText(nIndex,i)); } m_MyListCtrl.DeleteItem(nIndex); int nNewIndex=nIndex+(bUp?-1:1); m_MyListCtrl.Insertitem(LVIF_TEXT,nNewIndex , strArray[0], 0, 0,0, 0); for (i=1;i <nCount;i++) { m_MyListCtrl->SetItemText(nNewIndex,i, strArray[i]); } }
![]()
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++.
Merci, ca a l'air bien ce que tu me propose, mais... en fait, je travaille sur une ligne sélectionnée par l'utilisateur, et le problème que je rencontre maintenant, c'est qu' au moment de l'appui sur le bouton Up, par exemple, la ligne perd sa sélection et GetHotItem() me renvoie -1...
Y a t'il un moyen de garder la sélection de la ligne, ou faut il que je me débrouille pour garder en mémoire la dernière ligne sélectionnée (solution que je ne trouve pas vraiment top...)
merci!![]()
salut,
tu peux recuperer la ligne selectionnée avant d'appeler la fonction:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 int nItem=-1; POSITION pos = m_MyListCtrl.GetFirstSelectedItemPosition(); if (pos! NULL) { nItem= m_MyListCtrl.GetNextSelectedItem(pos); MoveListCtrlLig(nItem,true); }![]()
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++.
Partager