1. Define a cimagelist m_imagelist;
Ii. initialize and load the image list:
m_imagelist.create (18, 18, ilc_colorddb | ilc_mask, 0, 1);
cbitmap camer;
cbitmap camerg;
camer. loadbitmap (idb_video);
camerg. loadbitmap (idb_videogroup);
m_imagelist.add (& camerg, RGB (192,192,192);
m_imagelist.add (& camer, RGB (192,192,192 ));
m_treelist.setimagelist (& m_imagelist, tvsil_normal);
DWORD dwstyles = getwindowlong (m_treelist.m_hwnd, gwl_style );
Dwstyles | = tvs_hasbuttons | tvs_haslines | tvs_linesatroot | tvs_editlabels;
Setwindowlong (m_treelist.m_hwnd, gwl_style, dwstyles );
Htreeitem hitem, hsubitem;
Hitem = m_treelist.insertitem ("parent1", tvi_root, tvi_last );
// Add parent1 to the root node
Hsubitem = NULL;
Hsubitem = m_treelist.insertitem ("child1_1", 1, 1, hitem, hsubitem );
// Add a subnode on parent1
Hsubitem = m_treelist.insertitem ("child1_2", 1, 1, hitem, hsubitem );
// Add a subnode on parent1, which is behind child1_1
Hsubitem = m_treelist.insertitem ("child1_3", 1, 1, hitem, hsubitem );
M_treelist.expand (hitem, tve_expand );
Hitem = m_treelist.insertitem ("parent2", tvi_root, hitem );
Hitem = m_treelist.insertitem ("parent3", tvi_root, hitem );
From: http://blog.csdn.net/wny198816/article/details/6996043