Listbox multicollone

Résolu
cs_Mamelook Messages postés 48 Date d'inscription jeudi 10 juillet 2003 Statut Membre Dernière intervention 27 juillet 2008 - 1 juil. 2007 à 14:25
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 - 3 juil. 2007 à 18:33
Comment fait t'on en C/C++ pour qu'une listbox est plusireur collone ?

9 réponses

racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
2 juil. 2007 à 11:32
Voici un petit exemple:

#include <Windows.h>
#include <commctrl.h>
int WINAPI WinMain(HINSTANCE hinst, HINSTANCE prev, LPSTR cmd, int show)
{
    // Charger La DLL pour les Common Controls:
    HINSTANCE hCmLib= LoadLibrary("comctl32.dll");
    // ...
    // Création de la fenêtre principale ici...
    //...
    // boucle des messages ici...
    // Libbérer la DLL des Common Controls:
    FreeLibrary(hCmLib);
    return 0;
}

Pendant le traitement du message WM_CREATE dans la procédure de la fenêtre principale, tu fais par exemple:
HWND hListView =CreateWindowEx(0,WC_LISTVIEW,0,WS_VISIBLE | WS_CHILD  | LVS_REPORT  |  LVS_SINGLESEL ,20, 20, 200, 300, hwndparent, 0, 0, 0);
Ensuite il faudra ajouter les colonnes en initialisant une structure LVCOLUMN et envoyer le message LVM_INSERTCOLUMN au handle de la ListView.
3
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
3 juil. 2007 à 18:33
Salut,

Dans la fenetre parente de la listview, il faut traiter le
message WM_NOTIFY et les codes de notifications NM_CLICK et NM_DBLCLK.
Pour ces 2 codes de notifications, lParam pointe sur une structure qui contient des informations sur l'item modifié (voir msdn).
3
racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
1 juil. 2007 à 19:20
Salut,
La ListBox doit avoir le style LBS_MULTICOLUMN. On spécifie ensuite la largeur à donner aux colonnes en envoyant le message LB_SETCOLUMNWIDTH au handle de la ListBox.
0
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
1 juil. 2007 à 19:32
Salut,

Souvent les gens font la confusion entre une listbox et une listview
quand il s'agit d'avoir des colones (avec un petit header, comme les
dossiers de Windows par exemple). Donc si une listbox multicolone n'est
pas ce que tu recherches, tu peux essayer une listview avec le style
LVS_REPORT.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Mamelook Messages postés 48 Date d'inscription jeudi 10 juillet 2003 Statut Membre Dernière intervention 27 juillet 2008
1 juil. 2007 à 20:20
Merci pour vos réponse, mais ce n'est pas ce genre de collone que je voudrai.
J'aurai aimer faire un system pour lister les fichiers d'un disque dur, pour le moment ji arrive avec une listbox, actuelement seul le nom du fichier ou repertoire est afficher, j'aurai aimer qu'il y est plusieur collone (une pour une image affin de diferencier fichier et repertoire, une autre pour le nom du fichier et une autre pour sa taille).

aardman >> Je ne sai pas comment on fait une listview, j'ai regarder tout les code sur le sujet, a chaque fois le compilateur me sort beaucoup d'erreur...
0
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
1 juil. 2007 à 22:47
Salut,

et bien ca serait ptet une bonne idée de nous montrer ton code et les erreurs qui vont avec.
0
cs_Mamelook Messages postés 48 Date d'inscription jeudi 10 juillet 2003 Statut Membre Dernière intervention 27 juillet 2008
2 juil. 2007 à 01:10
Ce sont les codes que je trouve sur cppfrance, je n'ai pas encore commencer...

Est-il possible de crée une listview avec la fonction CreateWindowEx ?
Ou alors somme nous obliger de passer par un fichier resource ?
0
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
2 juil. 2007 à 01:16
Salut,

Oui c'est possible, en utilisant "SysListView32" comme nom de classe, ou bien le define WC_LISTVIEW.
0
cs_Mamelook Messages postés 48 Date d'inscription jeudi 10 juillet 2003 Statut Membre Dernière intervention 27 juillet 2008
3 juil. 2007 à 17:45
Merci beaucoup pour votre aide, maintenant je me demande comment on fait pour recuperer la ligne selectionner apres un double clic/clic simple.
J'ai tout esseyer
0
Rejoignez-nous