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]Ins�rer une image dans un CListCtrl


Sujet :

MFC

  1. #1
    Membre averti
    Inscrit en
    Juillet 2004
    Messages
    22
    D�tails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 22
    Par d�faut [MFC]Ins�rer une image dans un CListCtrl
    Salut � tous =)

    voici mon probl�me : j'essaie d'ins�rer des images dans un CListCtrl.
    Il ne m'affiche rien du tout.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    HIMAGELIST hList = ImageList_Create(32,32, ILC_COLOR8 |ILC_MASK , 8, 1);
    	CImageList imglist;
    	imglist.Attach(hList);
     
    	CBitmap cBmp;
    	cBmp.LoadBitmap(IDB_GENERAL);
     
    	ret=imglist.Add(&cBmp, RGB(0,0,0));
    	if (ret==0)
    		ret=GetLastError();
     
    	cBmp.DeleteObject();
     
    	this->SetImageList(&imglist, LVSIL_NORMAL);
    Quand j'arrive � la fonction imglist.Add() , il me retourne une erreur, et GetLastError() donne 6 : Descripteur non valide.

    d'o� �a pourrait venir ?

    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
    salut,
    je ne sais pas comment bosse ta fonction ImageList_Create ,
    moi je procede comme �a habituellement .
    je definis un bitmap de la largeur qui convient : taille totale = nb d'images * largeur d'une image ici IDB_PACKAGE_STATES et:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
    /*CImageList */m_ilStates.Create (IDB_PACKAGE_STATES, 13, 1, RGB(255, 255, 255));
    SetImageList (&m_ilStates, TVSIL_STATE);

  3. #3
    Membre averti
    Inscrit en
    Juillet 2004
    Messages
    22
    D�tails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 22
    Par d�faut
    je ne sais pas comment bosse ta fonction ImageList_Create
    ben en fait moi non plus, j'ai trouv� le code sur codeprojet.com

    donc si je suis bien ce que tu m'as dit, �a devrait donner �a ?
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
            CImageList imglist;
    	imglist.Create(IDB_GENERAL,71,71,RGB(255, 255, 255));
     
    	CBitmap cBmp;
    	cBmp.LoadBitmap(IDB_GENERAL);
     
    	imglist.Add(&cBmp, RGB(255,255,255));
     
            cBmp.DeleteObject();
     
    	this->SetImageList(&imglist, LVSIL_NORMAL);
    mais �a ne merche pas non plus...

  4. #4
    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
    tu n'as plus besoin de faire le add puisque tu initialises la CImageList directement avec le bitmap ....
    regarde mon code

  5. #5
    Membre averti
    Inscrit en
    Juillet 2004
    Messages
    22
    D�tails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 22
    Par d�faut
    donc �a donnerait �a ? :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    	CImageList imglist;
    	int ret=imglist.Create(IDB_GENERAL,71,71,RGB(255,255, 255));
     
    	this->SetImageList(&imglist, LVSIL_NORMAL);
     
    	LVITEM lvi;
    	lvi.mask =  LVIF_IMAGE | LVIF_TEXT;
     
    	lvi.iItem = 1;
    	lvi.iSubItem = 0;
    	lvi.pszText = (LPTSTR)"opopop";
    	lvi.iImage = 1;
    	this->InsertItem(&lvi);
    en fait il met bien le "opopop", il met bien qq chose de la taille d'une image (le scroll vertical en fait foi), mais il n'y a pas d'image.

    le lvi.iImage c'est bien l'index de l'image qu'on a charg�e dans le CImageList ?

  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
    Par d�faut
    oui mais demarre a zero...

  7. #7
    Membre averti
    Inscrit en
    Juillet 2004
    Messages
    22
    D�tails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 22
    Par d�faut
    tu as raison ! j'avais pas fait gaffe. mais �a n� r�soud pas le pb et l� je ne vois pas du tout ce que �a peut �tre. je fouille dans la msdn, mais trouve po...

  8. #8
    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
    essaye cette version:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
    int nImage=0;
    InsertItem(LVIF_TEXT|LVIF_IMAGE,GetItemCount(),"opopop",0,0,nImage,0);
    tu as respect� la couleur du mask dans ton bitmap ?
    il a bonne taille par rapport a la cimalist ?
    il fait pas plus de 256 couleurs ?

  9. #9
    Membre averti
    Inscrit en
    Juillet 2004
    Messages
    22
    D�tails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 22
    Par d�faut
    Salut :-)

    D�sol� pour le retard, petits probl�mes de connection...

    Alors la m�thode InsertItem() ne fonctionne pas non plus.
    Pour l'image, elle est en 8 bits, ce qui qoit bien faire 256 couleurs si je ne m'abuse. la taille du CImageList est bonne, par contre le masque, alors l�...
    c'est quoi exactement un masque ? et comment connaitre celui d'une image ?

    Merci ++

Discussions similaires

  1. R�ponses: 10
    Dernier message: 14/01/2015, 00h41
  2. Ins�rer une image dans une MFC windows mobile
    Par LuffyyffuL dans le forum MFC
    R�ponses: 2
    Dernier message: 16/04/2010, 19h04
  3. Comment ins�rer une image dans une cellule d'un TDrawGrid ?
    Par kanux dans le forum Composants VCL
    R�ponses: 4
    Dernier message: 15/01/2005, 18h58
  4. [Crystal Reports 9] comment ins�rer une image dans D�tails
    Par VVE dans le forum SAP Crystal Reports
    R�ponses: 2
    Dernier message: 22/10/2003, 17h06

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