IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MFC Discussion :

Trier les éléments d'une CListCtrl


Sujet :

MFC

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Décembre 2004
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 24
    Par défaut
    C'est ça le problème. Tout ça je l'ai fait et ma liste se rempli correctement et le lParam et bien pris en compte parcequ'il me sert après.
    Donc moi je ne vois pas où est le problème!! je suis perdue

  2. #2
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Par défaut
    Salut

    Voici ce que j'ai fait :
    Dans un CListCtrl, j'affiche des noms de fichiers en premier item et leur taille en subItem,

    Pour un tri sur les tailles : j'ai mis en Data les tailles avec un

    res = ((CListCtrl *)GetDlgItem(IDC_LIST1))->SetItem( i, 0,LVIF_PARAM, 0, 0, 0, 0, (LPARAM)taille);

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    // la fonction de tri
    static int CALLBACK MyCompareProc1(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort)
    {
        return (DWORD)lParam1 > (DWORD)lParam2;
    }
     
    // appel par 	((CListCtrl *)GetDlgItem(IDC_LIST1))->SortItems(MyCompareProc1, 0);
    // dans ce cas très simple pas besoin de paramètre supplémentaire

    Pour un tri sur les noms de fichier j'ai mis en data le numéro d'insertion de l'item

    res = ((CListCtrl *)GetDlgItem(IDC_LIST2))->SetItem(i, 0,LVIF_PARAM, 0, 0, 0, 0, (LPARAM)i);

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    // la fonction de tri
    static int CALLBACK MyCompareProc2(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort)
    {
       CListCtrl* pListCtrl = (CListCtrl*) lParamSort;
     
       CString    strItem1 = pListCtrl->GetItemText(lParam1, 0);
       CString    strItem2 = pListCtrl->GetItemText(lParam2, 0);
     
       return stricmp(strItem1, strItem2);
    }
     
    // appel par 	((CListCtrl *)GetDlgItem(IDC_LIST1))->SortItems(MyCompareProc2, (LPARAM)((CListCtrl *)GetDlgItem(IDC_LIST1)));
    // ici il faut l'adresse du CListCtrl pour pouvoir extraire les info
    Pas besoin de faire réaffficher le CListCtrl !

    Ton erreur est je pense ici :
    SortItems(MyCompareProc, (LPARAM) this);
    Ce n'est pas this, mais le CListCtrl qu'il faut passer.
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Trier les éléments d'une datagrid (RAI MVVM)
    Par SIC83 dans le forum Silverlight
    Réponses: 4
    Dernier message: 11/02/2012, 17h26
  2. Réponses: 2
    Dernier message: 29/10/2008, 11h13
  3. Trier les éléments d'une boite de dialogue OpenDialog
    Par Gengis_Khan dans le forum Composants VCL
    Réponses: 0
    Dernier message: 17/05/2008, 10h16
  4. Trier les élément d'une ListBox
    Par gluc86 dans le forum ASP.NET
    Réponses: 3
    Dernier message: 17/01/2008, 14h58
  5. Trier les éléments d'une DropDownList
    Par Med80 dans le forum C#
    Réponses: 6
    Dernier message: 18/04/2007, 19h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo