我本来只想在根节点的下一个节点添加图标,但是在SetImageList后,所有的根节点默认都会添加上一个图标,怎么样才能把根节点的图标给去掉。
m_ilImageList.Create(16,16,ILC_COLOR32|ILC_MASK,4,4);
m_ResultList.GetTreeCtrl().SetImageList(&m_ilImageList, LVSIL_NORMAL);
m_nIconUser = m_ilImageList.Add(AfxGetApp()->LoadIcon(IDR_LANTOOLBAR));
hRoot = m_ResultList.GetTreeCtrl().InsertItem(_T("aaaa"));
m_ilImageList.Create(16,16,ILC_COLOR32|ILC_MASK,4,4);
m_ResultList.GetTreeCtrl().SetImageList(&m_ilImageList, LVSIL_NORMAL);
m_nIconUser = m_ilImageList.Add(AfxGetApp()->LoadIcon(IDR_LANTOOLBAR));
hRoot = m_ResultList.GetTreeCtrl().InsertItem(_T("aaaa"));
hRoot = m_ResultList.GetTreeCtrl().InsertItem(_T("aaaa"),-1,-1);
后面两个参数表示你选择的图标序号。如果你不写,就相当于默认为0,自然有图标了。不需要就写-1
没有用,试过仍然会显示第0个图标。
回复3L:
我不想在根节点上和子节点的节点上显示图标,只想在子节点上显示图标。
举例: 我只希望在bbb上添加图标,但每次aaa和ccc总是会加上图标
-aaa
-bbb
ccc
LPTVINSERTSTRUCT lpInsertStruct
);
HTREEITEM InsertItem(
UINT nMask,
LPCTSTR lpszItem,
int nImage,
int nSelectedImage,
UINT nState,
UINT nStateMask,
LPARAM lParam,
HTREEITEM hParent,
HTREEITEM hInsertAfter
);
HTREEITEM InsertItem(
LPCTSTR lpszItem,
HTREEITEM hParent = TVI_ROOT,
HTREEITEM hInsertAfter = TVI_LAST
);
HTREEITEM InsertItem(
LPCTSTR lpszItem,
int nImage,
int nSelectedImage,
HTREEITEM hParent = TVI_ROOT,
HTREEITEM hInsertAfter = TVI_LAST
);nImage
Index of the item's image in the tree view control's image list. nSelectedImage
Index of the item's selected image in the tree view control's image list.
CImageList m_ilImageList;
m_ilImageList.Create(16,16,ILC_COLOR32|ILC_MASK,4,4); m_Tree.SetImageList(&m_ilImageList, LVSIL_NORMAL);
int m_nIconUser = m_ilImageList.Add(AfxGetApp()->LoadIcon(IDR_MAINFRAME));
HTREEITEM hRoot, hItem;
hRoot = m_Tree.InsertItem("aaa", -1, -1);
hItem = m_Tree.InsertItem("bbb", 0, 0, hRoot);
回复 VisualEleven(Eleven[兔子党组织部长]):所有的函数我都用过一遍了
//也就是说stateImageList中的第一个图标不可以作为state image.
m_treeCtrl.SetItemState(hRoot,INDEXTOSTATEIMAGEMASK(1), TVIS_STATEIMAGEMASK);//hRoot项没有state image
m_treeCtrl.SetItemState(hRoot, 0,TVIS_STATEIMAGEMASK);