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 :

[CListCtrl] insérer dans la bonne colonne


Sujet :

MFC

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    315
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2003
    Messages : 315
    Points : 105
    Points
    105
    Par défaut [CListCtrl] insérer dans la bonne colonne
    bonjour tout le monde ,
    j'ai un list control :contenant 5 colonnes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    	m_Properties.InsertColumn( 0, _T("Qualified name"), LVCFMT_LEFT, nNumberWidth, 0 );
    	m_Properties.InsertColumn( 1, _T("Picture"), LVCFMT_LEFT, nLeftOverHalf, 1 );
    	m_Properties.InsertColumn( 2, _T("Size(bytes)"), LVCFMT_LEFT, nLeftOverHalf, 2 );
    	m_Properties.InsertColumn( 3, _T("Initial Value"), LVCFMT_LEFT, nLeftOverHalf, 3 );
    	m_Properties.InsertColumn( 4, _T("Location"), LVCFMT_LEFT, nLeftOverHalf, 4 );
    et je voudrais mettre les bonne valeurs dans les bonne colonnes seulement, lorsque je fais ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    m_Properties.SetItemText(0,nNoCol,item.c_str());
    (ou nNoCol est le num.ro de colone et item la valeur a insérée)

    toutes les valeur vont dans la première colonne alors que je voudrais qu'elles aillent dans la bonne colonne...
    comment cela se fait-il?

  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
    Points : 17 323
    Points
    17 323

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    315
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2003
    Messages : 315
    Points : 105
    Points
    105
    Par défaut
    je ne sais pas ce uq ej fais d'incorrect dans mon code, quelqu'un pourrait-il m'aider
    alors voila:
    lorsque l'on clique sur un bouton, une dialog box s'Afficher, dans cette dialogue box se trouve
    et lorsque je crée cette dialogue bos, j'initialise mes colonnes:
    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
    	CRect rClient;
    	m_Properties.GetClientRect( rClient );
     
    	LV_COLUMN lvcolumn;
    	lvcolumn.mask = LVCF_FMT | LVCF_SUBITEM | LVCF_TEXT | LVCF_WIDTH;
    	lvcolumn.fmt = LVCFMT_CENTER;
    	lvcolumn.cx = (int) (rClient.Width () / 3);
     
    	lvcolumn.iSubItem = 0;
    	lvcolumn.pszText = "Qualified name";
    	m_Properties.InsertColumn (0,&lvcolumn);
     
    	lvcolumn.iSubItem = 1;
    	lvcolumn.pszText = "Picture";
    	m_Properties.InsertColumn (1,&lvcolumn);
     
    	lvcolumn.iSubItem = 2;
    	lvcolumn.pszText = "Size(bytes)";
    	m_Properties.InsertColumn (2,&lvcolumn);
     
    	lvcolumn.iSubItem = 3;
    	lvcolumn.pszText = "Initial Value";
    	m_Properties.InsertColumn (3,&lvcolumn);
     
    	lvcolumn.iSubItem = 4;
    	lvcolumn.pszText = "Location";
    	m_Properties.InsertColumn (4,&lvcolumn);
     
    	m_Properties.SetExtendedStyle(m_Properties.GetExtendedStyle() | LVS_EX_FULLROWSELECT );
    voici ce 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
    	CTntProperties* dlgProp;
    	dlgProp = new CTntProperties(this);
    	std::string num;
    	//Insert the qualified names
    	for (int i = 0; i < var.name.count ; i ++)
    	{
    		num = to_string(var.name.qualified_name[i]);
    		dlgProp->AddItem(i,1,num);
    	}
     
    	//Insert the picture
    	num = to_string( var.detail.pic );
    	dlgProp->AddItem(0,2,num);
     
    	//Insert Actual size
    	num = to_string( var.detail.size);
    	dlgProp->AddItem(0,3,num);
     
    	//Insert location
    	num = to_string( var.detail.mainsrcline );
    	dlgProp->AddItem(0,4,num);
    ma fonction addItem est ainsi:
    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
    void CTntProperties::AddItem(int nLine,int nNoCol,std::string  item)//std::string item )
    {
      	//CString sNumber = item.c_str();
    	//sNumber.Format( _T("%d"), nLine );
     
    	LVITEM lvitem		= { 0 };
    	lvitem.mask		= LVIF_TEXT;
    	lvitem.iItem		= nLine;
    	lvitem.iSubItem	= nNoCol;
    	lvitem.pszText=(char *)item.c_str();
    	m_Properties.InsertItem( &lvitem );
     
     
     
     
    }
    la dilog bx s'affiche bien, mais je ne réussi a avoir que les valeurs de la permièere colone..impossible d'avoir les autres colones
    comment ça se fait?

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    315
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2003
    Messages : 315
    Points : 105
    Points
    105
    Par défaut
    anyone?

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 15
    Points : 13
    Points
    13
    Par défaut
    En fait il faut écrire ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    LVITEM lvi; 
     
    lvi.mask =  LVIF_TEXT; 
    lvi.iItem = 0;   // numero de la ligne 
    lvi.iSubItem = 0;   // premiere colonne 
    lvi.pszText = (LPTSTR)(LPCTSTR)(_T("Valeur colonne 1")); 
    listctrl.InsertItem(&lvi); 
    lvi.iSubItem =1;   //deuxieme colonne 
    lvi.pszText = (LPTSTR)(LPCTSTR)(_T("Valeur colonne 2")); 
    listctrl.SetItem(&lvi);
    lvi.iSubItem =2;   //deuxieme colonne 
    lvi.pszText = (LPTSTR)(LPCTSTR)(_T("Valeur colonne 3")); 
    listctrl.SetItem(&lvi);
    Avec SetItem à la place de InsertItem pour les autres colonnes

  6. #6
    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
    Points : 17 323
    Points
    17 323
    Par défaut
    Citation Envoyé par shirya
    anyone?
    je t'avais repondu apparemment tu n'as pas lu..

Discussions similaires

  1. [XL-2007] Consolidation - Insérer donner dans une nouvelle colonne
    Par N0uchettte dans le forum Excel
    Réponses: 2
    Dernier message: 27/05/2013, 10h29
  2. Réponses: 11
    Dernier message: 31/01/2013, 10h56
  3. [XL-2003] Faire correspondre une colonne avec une autre et copié les données dans la bonne colonne
    Par mairiemeudon dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 01/06/2010, 15h31
  4. Réponses: 6
    Dernier message: 12/10/2008, 17h58
  5. Réponses: 5
    Dernier message: 19/04/2005, 09h46

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