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 :

Manipulation d'une CImageList


Sujet :

MFC

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2006
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2006
    Messages : 71
    Par défaut Manipulation d'une CImageList
    Bonjour,
    J'ai besoin d'afficher des thumbnails dans une liste.
    Voici mon code qui pour l'instant est censé afficher une simple image :
    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
    		CBitmap *bmp1;
    		CxImage image;
    		CString bmpPath;
    		bmpPath.Format(file_name);
    		bmpPath.Format("%s.bmp",bmpPath.Left(bmpPath.ReverseFind('.')));
    		bmpPath = GetFilePath(bmpPath.GetBuffer(bmpPath.GetLength()));
    		image.Load(bmpPath.GetBuffer(bmpPath.GetLength()), CXIMAGE_FORMAT_BMP);
    		HBITMAP handlebitmap = NULL;
    		handlebitmap = image.MakeBitmap(m_ListFiles.GetDC()->m_hDC);
    		bmp1 = bmp1->FromHandle(handlebitmap);
     
     
    		CImageList imageList;
    		imageList.Create(105,143,ILC_COLOR16,1,5);
    		int imgP=imageList.Add(bmp1,RGB(0,0,0));
     
    		m_ListFiles.SetImageList(&imageList,LVSIL_STATE);
    Tout semble bien se dérouler depuis le débogueur (imageList.Add renvoie bien 0), cependant l'image n'apparait pas dans la liste.
    Je n'arrive pas à trouver la source du problème.

    Faut-il obligatoirement travailler avec une liste vierge, ou ayant certaines caractéristiques spéciales permettant l'insertion d'une imageList ?
    Y'a-t-il une fonction qui m'a échappé qui force l'affichage ?

    J'ai lu dans une discussion que la classe CImageList contenait des bugs, qu'en pensez vous ?

    Merci d'avance pour vos suggestions.

  2. #2
    Membre chevronné Avatar de stephdim
    Profil pro
    Inscrit en
    Août 2007
    Messages
    462
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 462
    Par défaut
    salut,

    quelle est la valeur de imgP après le CImageList::Add ??

    si imgP<0 c'est que ton bitmap n'est pas valide.

    @+

    EDIT: oups j'avais pas tout lu imgP=0

  3. #3
    Membre chevronné Avatar de stephdim
    Profil pro
    Inscrit en
    Août 2007
    Messages
    462
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 462
    Par défaut
    Comment sais tu que l'image n'apparait pas dans la liste ?

    Si imgP=0 c'est qu'elle a bien été insérée en premiere position.

    Il n'y a pas de bug a ma connaissance, je m'en sers souvent

    @+

  4. #4
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2006
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2006
    Messages : 71
    Par défaut
    Hmm je me suis mal exprimé.
    En fait mon problème est que la liste apparait vide. Je ne vois pas d'image lorsque je lance le programme.

    Serait-il possible que tu partages ton code où tu initialises une CListCtrl et CImageList puis remplit tout ça ?

  5. #5
    Membre chevronné Avatar de stephdim
    Profil pro
    Inscrit en
    Août 2007
    Messages
    462
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 462
    Par défaut
    Ton probleme vient plutot alors de ta CListCtrl ...

    Le code que tu as publié ici est truffé de petites erreurs (ex: GetDC() ou est ReleaseDC()??? = memory leak ; mais c'est hors sujet ), mais il devrait fonctionner ...

    Je ne vois qu'un soucis de CListCtrl après, concernant le paramétrage de tes éléments de la liste.

    @+

  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
    salut,
    imageList doit être persistant, et donc devrait être déclaré en tant que donnée membre de la classe fenêtre parent de la ClistCtrl.

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

Discussions similaires

  1. Conseil sur la manipulation d'une string?
    Par Jayceblaster dans le forum Delphi
    Réponses: 6
    Dernier message: 13/07/2006, 14h29
  2. [VB6]Accès et manipulation d'une BD Access sur réseau
    Par moi_leila dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 04/04/2006, 18h48
  3. manipulation d'une liste chainé
    Par sorari dans le forum C++
    Réponses: 1
    Dernier message: 16/03/2005, 12h32
  4. [XSLT] Manipulation d'une String
    Par Eskarina43 dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 15/06/2004, 11h52
  5. Réponses: 2
    Dernier message: 08/10/2002, 18h26

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