begin process at 2012 05 27 21:05:44
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

API

 > TRI DES COLONNES D'UNE LISTVIEW (WIN32)

TRI DES COLONNES D'UNE LISTVIEW (WIN32)


 Information sur la source

Note :
10 / 10 - par 3 personnes
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :API Classé sous :listview, colonne, tri Niveau :Débutant Date de création :03/07/2004 Date de mise à jour :04/07/2004 17:02:26 Vu / téléchargé :12 914 / 1 567

Auteur : vecchio56

Ecrire un message privé
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (23)
Ajouter un commentaire et/ou une note


 Description

ListView avec 3 colonnes, et trois manières différentes de trier les colonnes, et affichage de la petite flèche qui permet de savoir dans quel ordre est triée un colonne (nécessite Comctl32.dll version 6).



 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !
  •   Release
    • LVSort.exeTélécharger ce fichier [Réservé aux membres club]27 136 octets
  • LVSort.cppTélécharger ce fichier [Réservé aux membres club]Voir ce fichier8 659 octets
  • LVSort.exe.ManifestTélécharger ce fichier [Réservé aux membres club]638 octets
  • LVSort.slnTélécharger ce fichier [Réservé aux membres club]Voir ce fichier901 octets
  • LVSort.suoTélécharger ce fichier [Réservé aux membres club]8 704 octets
  • LVSort.vcprojTélécharger ce fichier [Réservé aux membres club]3 675 octets
  • resource.hTélécharger ce fichier [Réservé aux membres club]Voir ce fichier588 octets
  • rsrc.rcTélécharger ce fichier [Réservé aux membres club]Voir ce fichier1 997 octets

Télécharger le zip


 Sources du même auteur

Source avec Zip COLORATION DE CODE C/C++ POUR LE FORUM DE CPPFRANCE
Source avec Zip SUPPRIMER LES # AJOUTÉS LORS D'UN COPIER/COLLER
Source avec Zip Source avec une capture CRÉER UN FICHIER ISO À PARTIR D'UN RÉPERTOIRE (WIN32)
Source avec Zip Source avec une capture EXPLORATEUR DE FICHIERS ISO
Source avec Zip Source avec une capture CHARGER UNE POLICE DEPUIS UN FICHIER OU UNE RESSOURCE (WIN32...

 Sources de la même categorie

Source avec Zip WIN32 TLS LENT par dguilmain
Source avec Zip VIDER ELEMENTS DE CORBEILLE WINDOWS7 (WIN64) par BruNews
Source avec Zip Source avec une capture FIND TEXT (WIN64) par BruNews
Source avec Zip DELETE DIRECTORY (WIN64) par BruNews
Source avec Zip ENUM DIRECTORY (WIN64) par BruNews

 Sources en rapport avec celle ci

LES OPÉRATIONS DE LA LISTE CHAINÉE par smaili
Source avec Zip Source avec une capture ALGORITHME DE TRI D'UN TABLEAU PAR ORDRE CROISSANT OU DÉCROI... par Thuzhen
Source avec Zip COMPARATIF DES TRIS QUADRATIQUE par gnairod
Source avec Zip COMBSORT ALGORITHME DE TRI SIMPLE RAPIDE NON-RECURSIF par xtremejames183
Source avec Zip Source avec une capture [WIN32] PETIT RÉPERTOIRE TÉLÉPHONIQUE ET AUTRES (GESTION LIS... par uaip

Commentaires et avis

Commentaire de gagah1 le 04/07/2004 11:51:16

Source très interessante pour manipuler les ListView, 10/10.
Malheureusement je ne peux pas utiliser InitCommonControlEx(...) et ListView_SetExtendedListViewStyleEx(...) parce que j'utilise DevC++.
Juste une question, pourquoi tu as defini _WIN32_WINNT en 0x501(en 1ère ligne)??? et une remarque: est-ce normal (ou un oubli) que tu utilises HeapAlloc(...) sans HeapFree(...)? A+

Commentaire de vecchio56 le 04/07/2004 17:01:46 administrateur CS

C'est pour la petite flèche dont je parlais, elle n'est dispo que pour XP ou supérieur

#if (_WIN32_WINNT >= 0x501)
#define HDF_SORTUP              0x0400
#define HDF_SORTDOWN            0x0200
#endif

Pour InitCommonControlEx, il faudrait que tu télécherges la dernière version de MinGW. Ou bien bien télécharge le toolkit Visual C++ (compilateur de Visual C++ en ligne de commande, gratuit).

Pour le HeapFree, c'est un oubli, et c'est corrigé

Commentaire de gagah1 le 04/07/2004 18:46:49

Où trouver ce toolkit Visual C++, sur MSDN??? et est-ce compatible avec DevC++ 4.9.5.0???

Commentaire de vecchio56 le 04/07/2004 20:24:23 administrateur CS

http://msdn.microsoft.com/visualc/vctoolkit2003/
Je pense qu'il y a moyen de l'utiliser avec dev-c++

Commentaire de rangoon le 13/08/2004 18:24:29

salut vecchio56.

J'essaye de comprendre commment programmer les listview.

Je compile ton source et j'obtient l'erreur suivante:
--------------------Configuration: LVSort - Win32 Debug--------------------
Compiling...
LVSort.cpp
Linking...
LVSort.obj : error LNK2001: unresolved external symbol __imp__InitCommonControlsEx@4
LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main

merci d'avance de m'aider.  A+
Debug/LVSort.exe : fatal error LNK1120: 2 unresolved externals
Error executing link.exe.
Creating browse info file...

LVSort.exe - 3 error(s), 0 warning(s)

Commentaire de vecchio56 le 13/08/2004 19:38:54 administrateur CS

J'imagine que tu as du refaire un nouveau projet (sans doute que tu as vs6). Il faut que tu ajoutes la librairie comctl32.lib, soit dans les options du projet, soit en ajoutant la directive
#pragma comment(lib, "comctl32.lib")
directement dans le fichier cpp pour dire au linker d'utiliser cette librairie.

Commentaire de rangoon le 16/08/2004 09:38:57

Merci beaucoup, vecchio56.

Cela à marcher du premier coup. Mais l'affichage des flèches ne fonctionne pas, et je suis sous XP.

j'ai oublié de te signaler ces erreurs de compilation:
C:\Documents and Settings\Ceria\Mes documents\listview\testliview\LVSort.cpp(43) : error C2065: 'HDF_SORTUP' : undeclared identifier
C:\Documents and Settings\Ceria\Mes documents\listview\testliview\LVSort.cpp(151) : error C2065: 'HDF_SORTDOWN' : undeclared identifier
C:\Documents and Settings\Ceria\Mes documents\listview\testliview\LVSort.cpp(256) : error C2664: 'HeapFree' : cannot convert parameter 3 from 'long' to 'void *'
        Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
Error executing cl.exe.
Creating browse info file...

LVSort.exe - 3 error(s), 0 warning(s)

Alors j'ai mis en commentaire "HeapFree(heap, 0, lvi.lParam);" et j'ai rajouté:
#if (_WIN32_WINNT >= 0x501)
#define HDF_SORTUP              0x0400
#define HDF_SORTDOWN            0x0200
#endif
mais mon compilateur n'aime pas: "#if (_WIN32_WINNT >= 0x501)", il me signale:
c:\documents and settings\ceria\mes documents\listview\testliview\LVSort.cpp(6) : fatal error C1012: unmatched parenthesis : missing ')'
Error executing cl.exe.
Donc j'ai suprimé le #if et le #endif et j'ai laissé les #define.

Avec l'ajoût de ton aide, cela à marcher du premier coup. Mais l'affichage des flèches ne fonctionne pas, et je suis sous XP et vs6.

Commentaire de vecchio56 le 16/08/2004 16:19:22 administrateur CS

Regarde bien, au début de mon fichier, j'ai mis
#define _WIN32_WINNT 0x501
Vérifie que tu n'a pas enlevé cette ligne. Si ca ne marche toujours pas, dis le moi.

Commentaire de vecchio56 le 16/08/2004 16:20:44 administrateur CS

Au fait, dans ton message précédent, ca compilait bien, puisque tu avais juste un probleme de link....

Commentaire de rangoon le 17/08/2004 11:29:53

La compilation se passe très bien, si je fais les modifs citées précédement.

Et à la première ligne du fichier LVSort.cpp, j'ai bien
#define _WIN32_WINNT  0x501

Commentaire de vecchio56 le 17/08/2004 11:52:09 administrateur CS

tu peux essayer d'enlever cette ligne alors, et de mettre
#define HDF_SORTUP              0x0400
#define HDF_SORTDOWN            0x0200
à la place

Pour le HeapFree, le pb viens du fait que je compile en mode C (option /C à la place de /TC), donc il faut faire un cast explicite:
HeapFree(heap, 0, (void*)lvi.lParam);

Commentaire de rangoon le 18/08/2004 08:35:58

J'ai réalisé tes modifs, mais rien ne fais. Je n'ai toujours pas les flèches haut et bas qui s'affichent.
Aurai-je toutes les bibliothèques (*.h) à jour?

Pour le HeapFree, en utilisant un cast explicite, vs6 m'indique que "User breakpoint called from code at 0x77F667cd".
Et le message: "HEAP[LVSort.exe]: Invalid Address specified to RtlFreeHeap( 00140000, 00144790 )".
Par contre, quand j'utilise LVSort.exe (sans vs6), il n'y a aucune erreur. Je pense que c'est normal.

Commentaire de magic_Nono le 22/11/2004 16:52:56

Bonjour vecchio

le toolkit est pour 2003 si je lis bien
existe t'il une version pour VC6??
merci
++
Nono

Commentaire de vecchio56 le 22/11/2004 18:50:54 administrateur CS

Je ne pense pas, je crois que c'est la première fois que ms fournissait gratuitement son compilateur

Commentaire de magic_Nono le 22/11/2004 18:56:43

k
schade
thx
B.

Commentaire de rastalalalolo le 26/11/2004 11:34:30

lut All

Pour ceux qui developpe sur dev-cpp et qui n'arrive pas a utiliser InitCommonControls, la suite vous interressera...
j'utilise dev cpp 4.9.9.0.

*D'abord mettre a jour dev:
dans dev cpp: menu "outils"-> "n. version/package"
et pour verifier les versions grace au
"package manager"

Windows32 API en version 3.1
gcc-core en 3.4.2....
gcc-g++ en 3.4.2....
gcc-objc en 3.4.2....
et MinGW runtime en 3.5

mettez a jour votre gnu make ca mange pas de pain, actuel 3.80.0-3

*Ensuite il faut lié la librairie utile comctl32.lib
du nom de libcomctl32.a sous devcpp

aucune ligne de commande a taper pour le fegniant que je suis, merci au developpeur,
menu "projet"->"option du projet"
->onglet "parametres"->bouton"ajouter fichier"
et puis allez chercher votre librairie libcomctl32.a

Apres le linkage de la lib la compil s'effectue

Je vous souhaite une bonne journée et une bonne prog:)

@++

Commentaire de vecchio56 le 28/11/2004 15:29:05 administrateur CS

Moi j'ai trouvé qu'il suffisait juste de définir convenablement _WIN32_IE (au moins 0x0300), c'est tout

Commentaire de vecchio56 le 28/11/2004 15:31:28 administrateur CS

et ajouter l'option -lcomctl32 au linker bien sur

Commentaire de deck_bsd le 04/06/2006 19:45:15

Exelente source, moi qui cherchai comment apprendre à gérer une listview je suis servie ;)

Commentaire de vecchio56 le 04/06/2006 19:47:19 administrateur CS

Tu devrais enlever le 'e' à la fin de servie, ça pourrait prêter a confusion :)

Commentaire de deck_bsd le 04/06/2006 19:51:58

MDR si je pouvai je le ferai. Je compte sur toi pour taire ce secret à jamais :D

Commentaire de Migluche le 12/09/2006 04:46:46

Salut,
  J'aimerais me servir du code pour les petites flèches dans un projet VB.NET.
Je ne suis pas sous Win XP mais si je regarde l'explorateur Windows de Win2000, les petites flèches, qui indiquent le sens du tri, y sont affichées.
Est-ce que quelqu'un sait comment s'y prendre ou est en mesure de me fournir un exemple?
Merci beaucoup!

Commentaire de Tahrn le 05/05/2008 16:40:03

Code interessant.

Petite remarque: le 3ème paramètre de la fonction de comparaison (lParamSort) n'est pas utilisé dans ce code.

Il devrait être utilisé pour passer un pointeur vers une structure.

Il est judicieux de stocker dans cette dernière:
*Le numéro de la colonne
*L'ordre de tri à effectuer
*...autres (suivant l'application)

Cela permet de réduire l'utilisation de variables globales, et, en passant le numéro de la colonne, permet d'implémenter une unique fonction de tri.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Liste, tri sur date (et non texte de la date) [ par themaste ] Bonjour à tous!Voila, mon problème est que j'ai une liste d'éléments, dont une colonne est remplie par une date.Mon souci, c'est que lorsque je clique tri listview ( debug - release ) [ par 3psilon ] Bonjour a tous,J'explique mon probleme :A titre pédagogique, j'ai crée une application (sans mfc avec VC 6), ou j'ai crée des listviews.Je rempli les ListView selection ligne, colonne [ par Galmiza ] Salut, J'aimerai savoir comment selectionner une ligne + une colonne dans une ListView (en mode "report"). J'ai trouvé sur le forum et sur le net PB sortitems() [ par titi4659 ] Bonjour,J'ai une liste d'element de type CListCtrl je souhaite la trié selon la colonne:Pour cela j'utilise la fonction SortItems(mysort, num_colonne) Remplir 2e colonne listview [ par melkiorlenecrarque ] Salut tout le monde !Encore un probleme de ListView !!Comment ajouter un texte (ou autre !), dans une colonne differente de la premiere?merci.Melkior Ajout d'éléments dans une listview [ par DJ_FleX ] Bonjour,Je débute la prog en c++ graphique et mon prof nous a donné comme sujet un récapitulatif assez long qui necessite plusieurs col recupere les item d'une colonne de ma listview [ par majestic3 ] Bonjour a tous, comment faire pour recuperer tous les elements d'une colonne d'une listview et les enregistrer dans une variable prob listview [ par flatou ] salut a tousj'ai un prob tt con avec une listview.Le prob est que je n'arrive pas a ajouter du texte dans les differentes colonnes. voici les bouts de Prob listview [ par titi4659 ] Bonjour, J'essaye de faire fonctionne une listview.je suis arrivé au stade ou je souhaite récupéré le numéro de la colonne, pour cela j'utilise l'evén Algorithmes de tri [ par goutu ] Bonsoir, je fait une étude sur les différents algorithmes de tri, j'en ai réécrit plusieurs, en m'inspirant de certains messages de ce site. J'ai appr


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,718 sec (4)

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