CImageList for CTreeCtrl
-
SetItem( TVITEM* pItem ) Regards Abhi Lahare
-
you need to use
CImageList* SetImageList( CImageList * pImageList, int nImageListType );
before you do insertitem and in that pass the index in the imagelist you need to display . Regards, FarPointer Blog:FARPOINTER -
See
SetItem
andSetImageList
_**
**_
whitesky
-
See
SetItem
andSetImageList
_**
**_
whitesky
-
Thanks for your reply.I got it. But when I insert items I am getting all the items as root items.How can I insert child items in to the tree :confused: -- modified at 3:02 Monday 10th July, 2006
Can you show how you to use this function_**
**_
whitesky
-
Can you show how you to use this function_**
**_
whitesky
BOOL CBmDialog::OnInitDialog() { CDialog::OnInitDialog(); CImageList list; list.Create(16, 16, ILC_COLOR8, 0, 4); CBitmap bm; bm.LoadBitmap(IDB_BITMAP1); list.Add(&bm, RGB(0, 0, 0)); m_tree1.SetImageList(&list,TVSIL_NORMAL); m_tree1.InsertItem("Image1"); m_tree1.InsertItem("Image2"); HTREEITEM h1,h2; h2=m_tree1.GetNextItem(h1,TVGN_FIRSTVISIBLE); m_tree1.SetItemImage(h2,0,0); return TRUE; }
-
BOOL CBmDialog::OnInitDialog() { CDialog::OnInitDialog(); CImageList list; list.Create(16, 16, ILC_COLOR8, 0, 4); CBitmap bm; bm.LoadBitmap(IDB_BITMAP1); list.Add(&bm, RGB(0, 0, 0)); m_tree1.SetImageList(&list,TVSIL_NORMAL); m_tree1.InsertItem("Image1"); m_tree1.InsertItem("Image2"); HTREEITEM h1,h2; h2=m_tree1.GetNextItem(h1,TVGN_FIRSTVISIBLE); m_tree1.SetItemImage(h2,0,0); return TRUE; }
I test this code and it work (you need to a resource(bitmap))
TVINSERTSTRUCT TreeCtrlItem; CBitmap Bmp; CImageList *m_ImageList; HTREEITEM hTreeItem1; m_ImageList = new CImageList(); m_ImageList->Create(50,50, ILC_COLORDDB,0,0); Bmp.LoadBitmap(IDB_BITMAP1);//resource bitmap with 5 image on it m_ImageList->Add(&Bmp,RGB(155,155,155)); TreeCtrlItem.hParent = TVI_ROOT; TreeCtrlItem.hInsertAfter = TVI_LAST; TreeCtrlItem.item.mask = TVIF_TEXT |TVIF_IMAGE|TVIF_SELECTEDIMAGE; TreeCtrlItem.item.pszText = CA2T("(A)");;//if you use from VS2005 instead CA2T use LPTSTR(); TreeCtrlItem.item.lParam = 0; TreeCtrlItem.item.iImage=0; TreeCtrlItem.item.iSelectedImage=0; hTreeItem1 = m_Tree1.InsertItem(&TreeCtrlItem); m_Tree1.SetImageList(m_ImageList, LVSIL_NORMAL); TreeCtrlItem.hParent = hTreeItem1; TreeCtrlItem.item.pszText = CA2T(" (B)"); TreeCtrlItem.item.lParam = 1; TreeCtrlItem.item.iImage=1; TreeCtrlItem.item.iSelectedImage=1; m_Tree1.InsertItem(&TreeCtrlItem); m_Tree1.SetImageList(m_ImageList, LVSIL_NORMAL);
_**
**_
whitesky
-
I test this code and it work (you need to a resource(bitmap))
TVINSERTSTRUCT TreeCtrlItem; CBitmap Bmp; CImageList *m_ImageList; HTREEITEM hTreeItem1; m_ImageList = new CImageList(); m_ImageList->Create(50,50, ILC_COLORDDB,0,0); Bmp.LoadBitmap(IDB_BITMAP1);//resource bitmap with 5 image on it m_ImageList->Add(&Bmp,RGB(155,155,155)); TreeCtrlItem.hParent = TVI_ROOT; TreeCtrlItem.hInsertAfter = TVI_LAST; TreeCtrlItem.item.mask = TVIF_TEXT |TVIF_IMAGE|TVIF_SELECTEDIMAGE; TreeCtrlItem.item.pszText = CA2T("(A)");;//if you use from VS2005 instead CA2T use LPTSTR(); TreeCtrlItem.item.lParam = 0; TreeCtrlItem.item.iImage=0; TreeCtrlItem.item.iSelectedImage=0; hTreeItem1 = m_Tree1.InsertItem(&TreeCtrlItem); m_Tree1.SetImageList(m_ImageList, LVSIL_NORMAL); TreeCtrlItem.hParent = hTreeItem1; TreeCtrlItem.item.pszText = CA2T(" (B)"); TreeCtrlItem.item.lParam = 1; TreeCtrlItem.item.iImage=1; TreeCtrlItem.item.iSelectedImage=1; m_Tree1.InsertItem(&TreeCtrlItem); m_Tree1.SetImageList(m_ImageList, LVSIL_NORMAL);
_**
**_
whitesky