2010-10-22 3 views
0

Je souhaite appliquer différentes images à différents nœuds dans mon arborescence MFC? Actuellement, j'ai appliqué une image à mon nœud racine treeview maintenant je veux appliquer une image différente aux sous-nœuds et comment développer tous les nœuds dans treeview, une fois que j'étends un autre nœud se replié ..MFC Treeview: Comment appliquer des images différentes à différents nœuds dans Treeview?

Actuellement je fais comme ceci:

CImageList *m_pNASImageList; 
CBitmap m_objRootImg; 

    m_objRootImg.LoadBitmap(IDB_TREEVIEWROOTIMG); 
    m_objNASFolderImg.LoadBitmap(IDB_NASFOLDERIMG); 

    m_RootImageList = new CImageList(); 
m_RootImageList->Create(16,16,ILC_COLOR8,1,1); 
m_RootImageList->Add(&m_objRootImg,RGB(250,190,79)); 
m_RootImageList->Add(&m_objNASFolderImg,RGB(250,190,79)); 
m_pTreeview->SetImageList(m_RootImageList,TVSIL_NORMAL); 

HTREEITEM Htvi = m_pTreeview->InsertItem("NAS1", hparentitem); 
        m_pTreeview->SetItemImage(Htvi,1,1); 
      m_pTreeview->InsertItem("Animation", Htvi); 
      m_pTreeview->InsertItem("StoryBoard", Htvi); 

J'ai chargé une image pour ma racine et un pour « NAS1 », comment charger pour l'animation & Storyboard quelles sont les valeurs que je devrais donner j'ai pris une troisième image ...

Tous l'aide est très appréciée. Merci.

Répondre

1

Vous pouvez utiliser BOOL SetItemImage (HTREEITEM hItem, int nImage, int nSelectedImage); dans la classe CTreeCtrl.

UPD: Importez vos bitmaps dans votre douleur de ressources et de les charger:

CBitmap m_Bitmap1, m_Bitmap2, m_Bitmap3, m_Bitmap4;

m_Bitmap1.LoadBitmap(IDB_BITMAP1); 
m_Bitmap2.LoadBitmap(IDB_BITMAP9); 
m_Bitmap3.LoadBitmap(IDB_BITMAP10); 
m_Bitmap4.LoadBitmap(IDB_BITMAP8); 

Créez votre liste d'images pour votre arbre: CImageList * m_ImageListTree;

m_ImageListTree = new CImageList; 
m_ImageListTree->Create(IDB_BITMAP1, 16, 1, RGB(255, 255, 255)); 
m_ImageListTree->Add(&m_Bitmap2, RGB(255, 255, 255)); 
m_ImageListTree->Add(&m_Bitmap3, RGB(255, 255, 255)); 
m_ImageListTree->Add(&m_Bitmap4, RGB(255, 255, 255)); 

Définissez votre liste d'images avec votre arbre:

MyTree-> SetImageList (m_ImageListTree, 0);

Vous pouvez maintenant utiliser des valeurs comprises entre 0 et 3 pour les 4 images chargées.

+0

@Sunscreen: pouvez-vous me fournir un échantillon? –

+0

Un exemple est posté ici: http://www.codeproject.com/KB/MFC/UltimateToolbox_SysInfo.aspx – Sunscreen

+0

@Sunscreen: comment transmettre des valeurs int à Setimage définit l'image que je ne peux pas comprendre? comment il lui attribue des images? –

Questions connexes