begin process at 2012 05 29 07:47:10
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Divers

 > 

Divers

 > 

LISTVIEW API WINDOWS


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

LISTVIEW API WINDOWS

jeudi 8 juin 2006 à 22:21:29 | LISTVIEW API WINDOWS

ralebole

Comment ranger un listview sur 2 colonnes (col1 et col 2) je m'explique par cette exemple
( la colonne 1 est prioritaire et ensuite la colonne 2) 

exemple au debut voila mon listview
noms          col1       col2
michel          8           -1
bernard        10         4
pierre           5           6
paul             7           3
jacques        8            6

Apres le rangement je voudrais obtenir ceci
noms           col1       col2
bernard        10         4
jacques        8            6
michel          8           -1
paul             7           3
pierre           5           6

Merci de mapportez votre aide.
Signer Ralebole







jeudi 8 juin 2006 à 23:25:42 | Re : LISTVIEW API WINDOWS

Taron31

Membre Club
Utilises LV_COLUMN (ListView_InsertColumn) pour dessiner les colonnes, et LV_ITEM (ListView_InsertItem) pour les Items...
Et moi j'utilise ListView_SetItemText pour afficher dans les autres colonnes...


___________________
MVS
- Most Valuable Student ( Microsoft)
vendredi 9 juin 2006 à 00:55:41 | Re : LISTVIEW API WINDOWS

aardman

Membre Club
Salut,
Pour trier la listview, il faut lui envoyer un message LVM_SORTITEMS ou bien LVM_SORTITEMSEX (voir les differences sur msdn).
Ces messages prennent en parametre un pointeur sur une fonction de comparaison dont le format est prédéfini. Cette fonction est chargée de comparer 2 items entre eux, et donc c'est dans cette fonction qu'il faut que tu geres la priorité de la colone 1 sur la colone 2 lors du tris.


vendredi 9 juin 2006 à 09:04:53 | Re : LISTVIEW API WINDOWS

ralebole

Merci pour la reponse mais un exemple serait le bienvenue j' avais deja consulter msdn mais cela ne m'explique pas comment faire et j'ai fait une recherche sur le web (LVM_SORTITEMS)  dans l'epoir de trouver un exemple mais rien.

Pour l'insertion des items il n'y à pas de probleme mais c'est juste pour le trie

Si quelq'un c'est ou je peut trouvé un exemple ou me donné un exemple ou une explication plus détaillé merci.

Signer Ralebole 
vendredi 9 juin 2006 à 09:24:23 | Re : LISTVIEW API WINDOWS

Taron31

Membre Club
Oups désolé j'ai répondu n'importe quoi ; j'ai cru que tu voulais savoir comment faire une listview :s

___________________
MVS
- Most Valuable Student ( Microsoft)
vendredi 9 juin 2006 à 15:28:06 | Re : LISTVIEW API WINDOWS

racpp

Administrateur CodeS-SourceS
Salut,
Il parait que tu veux gérer une petite base de donnée. Dans ce cas je te conseille de créer une base de donnée Access (.mdb) vide qui contient juste les champs sans aucun enregistrement. Dans ton programme, tu accéderas à cette base avec le composant ADO présent dans tous les Windows depuis 98. Avec de simples requetes SQL tu peux faire toutes les opération que tu veux sur la base. Le tri par exemple peut se faire par ordre de priorité sur plusieurs colonnes. C'est le résultat du tri qui sera alors affiché dans la ListView.

vendredi 9 juin 2006 à 16:22:44 | Re : LISTVIEW API WINDOWS

ralebole

Je ne veut pas gérer une base de donnée je veut juste faire un trie dans un listview alors me lancé dans un bazard comme sa pas la peine. 

 

vendredi 9 juin 2006 à 18:48:21 | Re : LISTVIEW API WINDOWS

racpp

Administrateur CodeS-SourceS
Le solution t'as été donnée par aardman. Tout doit être codé dans la fonction de comparaison ayant comme prototype:
int CALLBACK CompareFunc(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort);
Cette fonction doit être indiquée pendant l'envoi du message LVM_SORTITEMS:
SendMessage(hListView,LVM_SORTITEMS,(WPARAM)0,(LPARAM)CompareFunc);
La fonction de comparaison  comparera  deux items à la fois, lParam1 et lParam2. Elle doit retourner une valeur négative si le premier item doit précéder le second. Une valeur positive dans le cas contraire ou 0 en cas d'égalité. Tu utiliseras le message LVM_GETITEMTEXT pour retrouver les chaines à comparer. Cette fonction est appelée par le système autant de fois que nécessaire suivant le nombre d'item dans la ListView.
Personnellement, je préfère utiliser LVM_SORTITEMSEX car il permet d'ignorer le membre lParam de la structure LVITEM.
Tu peux regarder le code source de aardman:
http://www.cppfrance.com/codes/EDONKEY-SEARCHER-SOCKET-WIN32_27536.aspx
Examine le fichier "interface.cpp"

vendredi 9 juin 2006 à 22:22:58 | Re : LISTVIEW API WINDOWS

vecchio56

Administrateur CodeS-SourceS
J'ai écrit un code précisément sur le tri des listview: http://www.cppfrance.com/codes/TRI-COLONNES-LISTVIEW-WIN32_24239.aspx
samedi 10 juin 2006 à 00:19:07 | Re : LISTVIEW API WINDOWS

racpp

Administrateur CodeS-SourceS
C'est vrai vecchio56. Je n'avais pas vu ce code source. Je pense que notre ami ralebole a maintenant suffisament d'éléments de base pour résoudre son problème. Après avoir bien compris le fonctionnement de cette fonction de tri, il n'aura qu'à l'améliorer pour gérer la priorité des colonnes.




Cette discussion est classée dans : windows, listview, exemple, api, col1


Répondre à ce message

Sujets en rapport avec ce message

ListView - API Windows [ par banane_rose ] dans tout les exemple que j'ai vu c'était que des dialog mais moi je veux pas de dialog ! comment on fait pour créer une listview par createwindowex ListView - API Windows (2) [ par banane_rose ] voilà je fais la suite plus personne vient sur l'autre ... c'est mort ! bref comment on fait pour empêcher le redimensionneent des colonnes ?Dorian / Selection dans listview - API Windows [ par banane_rose ] salut. voilà , je trouve pas comment séléctionner un élément dans une listview , ni comment savoir si y'a des items séléctionnés et combien .<font co fichiers .ini ?? - api windows [ par banane_rose ] comment ça marche cette bête ? j'y comprend pas grand chose . même le truc le plus facile ça marche pas : WritePrivateProfileString( "My_Option","My_ Bulle ? - API Windows [ par banane_rose ] salut voilà je veux afficher une bulle comme cet exemple : je veux choisir l'icone le titre en gras et son texte . +++<hr Problème Combobox - API Windows [ par banane_rose ] hC = CreateWindowEx(0,"COMBOBOX",NULL,WS_CHILD|WS_VISIBLE|CBS_DROPDOWNLIST, 15,20,100,21,hWnd,(HMENU)ID_C,hInst,NULL); voilà après j'ai ajouté deux é Programme à icone perso - API Windows [ par banane_rose ] expliquez moi tout please je veux changer l'icône visible sur le programme dans la navigation dans les dossiers mais surtout la petite icone en haut Toolbar sans images ?? - API Windows [ par banane_rose ] j'ai fait une toolbar avec 2 cases ... mais vides . j'ai fait mon fichier bitmap de 32x16 ... expliquez moi pour les imagesDorian / 14 ans / sous Dev- Focus - API Windows [ par banane_rose ] salut, voilà je n'arrive pas à trouver des infos pour l'utilisation du focus . - la touche entrée pour valider (grosse bordure) ex: - contour e Fichiers en ressources - API Windows [ par banane_rose ] salut voilà je voudrais savoir comment mettre des fichiers en ressources du programmes puis après pouvoir les enregistrer après (dialog enregistrer s


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,546 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales