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 :

manipuler une CListCtrl ou CListBox multi-colonne


Sujet :

MFC

  1. #1
    Membre confirmé
    Femme Profil pro
    Développeur Web
    Inscrit en
    Mai 2009
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2009
    Messages : 164
    Par défaut manipuler une CListCtrl ou CListBox multi-colonne
    bonjour,

    pour mon projet je voulais avoir un tableau avec deux colonnes, nom et prenom.
    comme j'ai trouvé aucun composant genre gridView ou des truc comme ca
    j'ai trouvé qu'on pouvait ajouter des colonnes au CListBox ou CListCtrl.

    D'apres d'autres forum il est plus facile d'ajouter des colonnes et de manipuler avec une CListCtrl..
    Mais je n'arrive à rien.
    Je vous montre mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    void CProfesseurs::DoDataExchange(CDataExchange* pDX)
    {
    	CFormView::DoDataExchange(pDX);
     
    	DDX_Control(pDX, IDC_TXTNOMPROF, m_txtNomProf);
    	DDX_Control(pDX, IDC_TXTPRENOMPROF, m_txtPrenomProf);
    	DDX_Control(pDX, IDC_LISTPROFESSEURS, m_listProfesseurs);
    	LV_COLUMN colNom,colPrenom;
     
    	colNom.mask = LVCF_FMT | LVCF_SUBITEM | LVCF_TEXT | LVCF_WIDTH;
    	colNom.fmt = LVCFMT_CENTER;
    	colNom.cx = (int) (50);
    	colNom.iSubItem = 0;
    	colNom.pszText = _T("Nom");
    	m_listProfesseurs.InsertColumn (0,&colNom);
    	colPrenom.mask = LVCF_FMT | LVCF_SUBITEM | LVCF_TEXT | LVCF_WIDTH;
    	colPrenom.fmt = LVCFMT_CENTER;
    	colPrenom.cx = (int) (50);
    	colPrenom.iSubItem = 1;
    	colPrenom.pszText = _T("Prénom");
    	m_listProfesseurs.InsertColumn (1,&colPrenom);
     
    	LV_ITEM item1 ;
    	item1.iItem = 0;
    	item1.iSubItem = 0;
    	item1.pszText = _T("mon_texte");
     
    	m_listProfesseurs.InsertItem (&item1);
    	item1.iSubItem = 1;
    	item1.pszText = _T("mon_texte colonne 2");
    	m_listProfesseurs.SetItem (&item1);
     
    }
    et ça ne fait rien du tout mon control est toujours vide..
    J'ai pris exemple sur : http://lesouriciergris.free.fr/winprog/clistctrl.pdf
    mais.. j'avoue ne pas tout comprendre..

    sinon je trouve a manipuler c'est beaucoup plus compliquer qu'une ListBox (pour récupérer les indices des lignes sélectionnées, supprimer les lignes, inserer des lignes..)
    Donc si quelqu'un arrive a créer des colonnes avec CListBox je veux bien (meme je prefere)
    J'ai utiliser ce qu'on disait dans : http://cpp.developpez.com/faq/vc/?pa...tBoxSetTabStop

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    // Set tabstops at 100 and 200 dialog units 
    int tab_stop[2] = {100, 200}; 
     VERIFY(m_listbox.SetTabStops(2, tab_stop)); 
     m_listbox.AddString("String1\tString2\tString3");
    mais ils acceptent pas mon AddString, il faut que j'ajoute _T(..) mais dans ce cas ca ne va plus avec le nombre de colonne ... :s


    un peu d'aide s'il vous plait?



    merci!!!

  2. #2
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    bonjour,
    c'est normal ton projet doit être configuré en unicode (réglage par défaut) ce qui explique l'utilisation obligatoire du _T.

  3. #3
    Membre confirmé
    Femme Profil pro
    Développeur Web
    Inscrit en
    Mai 2009
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2009
    Messages : 164
    Par défaut
    ah OK. c'est bon j'ai modifié, par contre au lancement j'ai une PopUp d'erreur qui s'affiche:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    --------------------
    Debug Assertion Failed!
     
    Program: ...ents\VisualStudio2010\Projects\...testTuto.exe
    File: f:\dd\vctools\vc7libs\ship\atlmfc\include\afxwin2.inl
    Line:794
     
    ...
    (press retry to debug appli)
    ---------------

Discussions similaires

  1. Réponses: 2
    Dernier message: 18/09/2007, 09h10
  2. Réponses: 3
    Dernier message: 11/07/2007, 10h10
  3. Réponses: 9
    Dernier message: 19/12/2005, 14h24
  4. Réponses: 6
    Dernier message: 07/09/2005, 20h31
  5. Fixer la largeur des colonnes d'une CListCtrl
    Par Depteam1 dans le forum MFC
    Réponses: 4
    Dernier message: 28/06/2005, 15h46

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