begin process at 2008 07 19 09:17:31
1 212 728 membres
67 nouveaux aujourd'hui
14 165 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

TRI DES COLONNES D'UNE LISTVIEW (WIN32)


Information sur la source

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é: 8 843 / 1 349

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

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

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).
Pour les "Membres Club", vous pouvez 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

  • signaler à un administrateur
    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+

  • signaler à un administrateur
    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é

  • signaler à un administrateur
    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???

  • signaler à un administrateur
    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++

  • signaler à un administrateur
    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)

  • signaler à un administrateur
    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.

  • signaler à un administrateur
    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.

  • signaler à un administrateur
    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.

  • signaler à un administrateur
    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....

  • signaler à un administrateur
    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

  • signaler à un administrateur
    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);

  • signaler à un administrateur
    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.

  • signaler à un administrateur
    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

  • signaler à un administrateur
    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

  • signaler à un administrateur
    Commentaire de magic_Nono le 22/11/2004 18:56:43

    k
    schade
    thx
    B.

  • signaler à un administrateur
    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:)

    @++

  • signaler à un administrateur
    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

  • signaler à un administrateur
    Commentaire de vecchio56 le 28/11/2004 15:31:28 administrateur CS

    et ajouter l'option -lcomctl32 au linker bien sur

  • signaler à un administrateur
    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 ;)

  • signaler à un administrateur
    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 :)

  • signaler à un administrateur
    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

  • signaler à un administrateur
    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!

  • signaler à un administrateur
    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

Pub



Appels d'offres

Dessins techniques
Budget : 60€
Animation Flash - Doma...
Budget : 370€
Application flash medi...
Budget : 1 000€

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS