{
HICON hIcon[7];
CImageList m_imagelist;
m_imagelist.Create(16,16,0,7,7);
//建立一个图像列表
m_imagelist.SetBkColor (RGB(255,255,255));
hIcon[0]=AfxGetApp()->LoadIcon (IDI_ICON2);
hIcon[1]=AfxGetApp()->LoadIcon (IDI_ICON1); //hIcon[6]=AfxGetApp()-〉LoadIcon (IDI_ BMP6);
for(int i=0;i<=6;i++)
{
m_imagelist.Add (hIcon[i]);
}
m_Tree.SetImageList(&m_imagelist,TVSIL_NORMAL) ;
//为m_MyTree设置一个图像列表,使CtreeCtrl的不同节点显示不同的图标
HTREEITEM m_item ;
m_item=m_Tree.InsertItem ("Root",0,0,0,0);
//根节点的图标为IDI_BMP0
if (m_item!=NULL)
//根节点建立成功
{
m_Tree.InsertItem("SubItem1",0,1,m_item) ;
//在根节点下建立一个子节点名为SubItem1,所显示的图标为IDI_BMP1。同理,可建立其它节点,同一层次的节点显示相同的图标
}
HICON hIcon[7];
CImageList m_imagelist;
m_imagelist.Create(16,16,0,7,7);
//建立一个图像列表
m_imagelist.SetBkColor (RGB(255,255,255));
hIcon[0]=AfxGetApp()->LoadIcon (IDI_ICON2);
hIcon[1]=AfxGetApp()->LoadIcon (IDI_ICON1); //hIcon[6]=AfxGetApp()-〉LoadIcon (IDI_ BMP6);
for(int i=0;i<=6;i++)
{
m_imagelist.Add (hIcon[i]);
}
m_Tree.SetImageList(&m_imagelist,TVSIL_NORMAL) ;
//为m_MyTree设置一个图像列表,使CtreeCtrl的不同节点显示不同的图标
HTREEITEM m_item ;
m_item=m_Tree.InsertItem ("Root",0,0,0,0);
//根节点的图标为IDI_BMP0
if (m_item!=NULL)
//根节点建立成功
{
m_Tree.InsertItem("SubItem1",0,1,m_item) ;
//在根节点下建立一个子节点名为SubItem1,所显示的图标为IDI_BMP1。同理,可建立其它节点,同一层次的节点显示相同的图标
}
要定义成全局的,否则出了这个函数,就释放了,刷新时找不到,当然显示不了。
m_wndTree.SetImageList(&m_ImgLst,TVSIL_NORMAL);
m_wndTreeItem1=m_wndTree.InsertItem(_T("0A"),0,1,TVI_ROOT);
其中IDB_TREE 为bitmap 有两个16X16的图片
不选中位 0 图片 选中位 1 图片
如果图标不用CImageList,而用ICON为什么不行?
HICON hIcon; hIcon = ::LoadIcon (AfxGetResourceHandle(), MAKEINTRESOURCE(IDI_NET));
m_ImageList.Add(hIcon);
hIcon = ::LoadIcon (AfxGetResourceHandle(), MAKEINTRESOURCE(IDI_SMS));
m_ImageList.Add(hIcon);
hIcon = ::LoadIcon (AfxGetResourceHandle(), MAKEINTRESOURCE(IDI_PHK));
m_ImageList.Add(hIcon);可以这样把ICO图加到CIMAGELIST中