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 :

[MFC] ListCtrl et images


Sujet :

MFC

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 122
    Points : 124
    Points
    124
    Par défaut [MFC] ListCtrl et images
    Bonjour,

    J'aimerais savoir si il est possible d'afficher des images dans une colonne d'un ListCtrl autre que la 1ère.

    Je voudrais pour cela utiliser un LVITEM (si possible):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    LVITEM lvi;
    	lvi.mask = LVIF_IMAGE;
    	lvi.iItem = 0;
    	lvi.iSubItem = 0;
    	lvi.iImage = 0;
    	m_liMyList.InsertItem(&lvi);
    Le pb est que je ne comprend pas trop cette structure.

    Je me demande même si ce que je veux faire est possible...

    Merci!

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 38
    Points : 40
    Points
    40
    Par défaut
    Bonjour, voici un exemple d'utilisation sous MFC (VC++ 6.0)
    Il faut ajouter ce code dans la méthode OnInitDialog

    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
     
    // TODO: Add extra initialization here
     
    	// *************************************************************
    	// ** Données membres définies dans le fichier .h de la boîte **
    	// ** de dialogue                                             **
    	// *************************************************************
    	// protected:                                                
    	// CImageList m_ImageList;                                   
    	// 
    	// CListCtrl m_ListCtrl; // Variable mappée au contrôle liste de la dialog
    	//
     
    	// ***************************************************
    	//¨** A faire au niveau des ressources du programme **
    	// ***************************************************
    	// Il faut créer 3 bitmaps de 16x16 (16 couleurs ou 256 peu importe)
    	// Pour ces bitmaps, dessinez-les sur un fond blanc
     
     
    	// *************************************
    	// ** Initialisation de la CImageList **
    	// *************************************
    	// -- Variable pour charger une bitmap depuis les ressources
    	CBitmap Bmp;
     
    	m_ImageList.Create(16,16,ILC_COLORDDB,3,5);
     
    	// -- Ajout de l'image 0
    	Bmp.LoadBitmap(IDB_LISTCTRL_IMG0);
    	m_ImageList.Add(&Bmp,RGB(214,0,147));
    	Bmp.DeleteObject();
     
    	// -- Ajout de l'image 1
    	Bmp.LoadBitmap(IDB_LISTCTRL_IMG1);
    	m_ImageList.Add(&Bmp,RGB(214,0,147));
    	Bmp.DeleteObject();
     
    	// -- Ajout de l'image 2
    	Bmp.LoadBitmap(IDB_LISTCTRL_IMG2);
    	m_ImageList.Add(&Bmp,RGB(214,0,147));
    	Bmp.DeleteObject();
     
    	m_ImageList.SetBkColor(CLR_NONE);
     
    	// ************************************
    	// ** Initialisation de la CListCtrl **
    	// ************************************
    	// -- Ajout de la CImageList dans la CListCtrl
    	m_ListCtrl.SetImageList(&m_ImageList,LVSIL_SMALL);
     
    	// -- Ajout des colonnes
    	m_ListCtrl.InsertColumn(0,"#",LVCFMT_CENTER,30);
    	m_ListCtrl.InsertColumn(1,"Col A",LVCFMT_LEFT,50);
    	m_ListCtrl.InsertColumn(2,"Col B",LVCFMT_LEFT,50);
    	m_ListCtrl.InsertColumn(3,"Col C",LVCFMT_LEFT,50);
    	m_ListCtrl.InsertColumn(4,"Col D",LVCFMT_LEFT,50);
     
    	// -- Modification du style de la CListCtrl
    	m_ListCtrl.SetExtendedStyle(m_ListCtrl.GetExtendedStyle() 
    									| LVS_EX_FULLROWSELECT
    									| LVS_EX_SUBITEMIMAGES);	// Autorise les images sur n'importe quelle colonne
    	// *********************************
    	// ** Remplissage de la CListCtrl **
    	// *********************************
    	int		iPos = 0;
    	LVITEM	lvItem;
     
     
    	// Ajout de la première ligne et de la colonne "#"
    	iPos = m_ListCtrl.InsertItem(0,"1",-1);
    		lvItem.iItem	= iPos;
     
    		lvItem.iSubItem		= 1;			// Initialisation de la colonne "Col A"
    		lvItem.mask			= LVIF_IMAGE;	// avec une image seulement
    		lvItem.iImage		= 0;			// Index de l'image
    		m_ListCtrl.SetItem(&lvItem);
     
    		lvItem.iSubItem		= 2;			// Initialisation de la colonne "Col B"
    		lvItem.mask			= LVIF_TEXT;	// avec du texte seulement
    		lvItem.pszText		= "Texte";
    		lvItem.cchTextMax	= strlen("Texte");
    		m_ListCtrl.SetItem(&lvItem);
     
    		lvItem.iSubItem		= 3;					// Initialisation de la colonne "Col C"
    		lvItem.mask			= LVIF_TEXT|LVIF_IMAGE;	// avec du texte et une image
    		lvItem.pszText		= "OK";
    		lvItem.cchTextMax	= strlen("OK");
    		lvItem.iImage		= 2;
    		m_ListCtrl.SetItem(&lvItem);
    J'espère que çà répond à tes attentes.

    Madeiras.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 122
    Points : 124
    Points
    124
    Par défaut
    Oui, merci bcp, c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    // -- Modification du style de la CListCtrl
       m_ListCtrl.SetExtendedStyle(m_ListCtrl.GetExtendedStyle()
                               | LVS_EX_FULLROWSELECT
                               | LVS_EX_SUBITEMIMAGES);   // Autorise les images sur n'importe quelle colonne
    qu'il ma fallait!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 21/09/2006, 17h33
  2. [MFC] Utilisation d'image en couleur 32 bits
    Par vanitom dans le forum MFC
    Réponses: 1
    Dernier message: 03/08/2005, 11h13
  3. Réponses: 8
    Dernier message: 17/04/2005, 19h58
  4. [MFC]Insérer une image dans un CListCtrl
    Par DestyNov@ dans le forum MFC
    Réponses: 8
    Dernier message: 04/03/2005, 14h36
  5. Réponses: 10
    Dernier message: 19/05/2004, 15h44

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