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

Windows Discussion :

[MFC] CTreeCtrl et bitmap


Sujet :

Windows

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 228
    Par défaut [MFC] CTreeCtrl et bitmap
    Bonjour, j'ai un problème avec un CtreeCtrl, j'essai de lui affecter une liste d'imagen, et ensuite utiliser cette liste pour afficher des bitmap a cote des noeuds de mon arbre.
    Pas d'erruer dans les retour des fonctions mais pas d'image non plus
    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
    CDialog::OnInitDialog();
    
    	CImageList imageList;
    	if(!imageList.Create(16, 16, ILC_COLOR, 0, 1))
    		AfxMessageBox(TEXT("Error creating imagelist !"));
    
    	CBitmap bm_device;
    	bm_device.LoadBitmap(IDB_DEVICE);
    
    	if(imageList.Add(&bm_device, RGB(255, 255, 255))  == -1)
    		AfxMessageBox(TEXT("Error adding image in image list !"));
    
    	bm_device.DeleteObject();
    
    	this->m_deviceTree.SetImageList(&imageList,TVSIL_NORMAL);
    
    	HTREEITEM root = this->m_deviceTree.InsertItem(TEXT("Root"),0);
    
    	if(root == NULL)
    		AfxMessageBox(TEXT("Error inserting item in tree !"));
    
    	if(!this->m_deviceTree.SetItemImage(root,0,0))
    		AfxMessageBox(TEXT("Error setting root image !"));
    Le code est dans le initdialog de ma boite.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 228
    Par défaut .
    Le CIMageList n'est pas stocker par le controle (on passe un pointeur, j'ai pas bien regardé...)
    Il faut que la liste de de images soit "persisistante" (variable de la classe treeView ou de la classe de la boite de dialogue dans mon cas)

    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
    CDialog::OnInitDialog();
    
    	if(!this->m_imageList.Create(16, 16, ILC_COLOR, 10, 10))
    		AfxMessageBox(TEXT("Error creating imagelist !"));
    
    	CBitmap bm_device;
    	bm_device.LoadBitmap(IDB_DEVICE);
    	
    	if(this->m_imageList.Add(&bm_device, RGB(0, 0, 0)) == -1)
    		AfxMessageBox(TEXT("Error adding image in image list !"));
    	bm_device.DeleteObject();
    
    	this->m_deviceTree.SetImageList(&this->m_imageList,TVSIL_NORMAL);
    
    	HTREEITEM root = this->m_deviceTree.InsertItem(TEXT("Root"),TVI_ROOT);
    
    	if(root == NULL)
    		AfxMessageBox(TEXT("Error inserting item in tree !"));
    
    	if(!this->m_deviceTree.SetItemImage(root,0,0))
    		AfxMessageBox(TEXT("Error setting root image !"));
    
    	return TRUE;

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

Discussions similaires

  1. [MFC] bouton bitmap!!
    Par ventreapatte dans le forum MFC
    Réponses: 4
    Dernier message: 29/05/2008, 19h22
  2. MFC / CTreeCtrl / Sélection ITEM
    Par chris_wafer_2001 dans le forum MFC
    Réponses: 5
    Dernier message: 31/10/2006, 11h25
  3. Réponses: 3
    Dernier message: 31/01/2005, 15h22
  4. Réponses: 2
    Dernier message: 20/01/2004, 14h27
  5. [MFC]Pb d'édition dans un CTreeCtrl ???
    Par Lofwyr dans le forum MFC
    Réponses: 6
    Dernier message: 01/08/2003, 14h46

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