1、如何在节点前加图标
2、我想根据程序状态,动态地改变节点前的图标,如何做

解决方案 »

  1.   

    CBitmap bitmap;
    bitmap.LoadBitmap(IDB_BITMAP_tree); m_treeImage.Create(16,16,ILC_COLORDDB|ILC_MASK ,4,0);
    m_treeImage.Add(&bitmap, RGB(0,0,0));
    m_Tree.SetImageList(&m_treeImage,LVSIL_NORMAL); TVINSERTSTRUCT tvInsert;
    tvInsert.hParent = NULL;
    tvInsert.hInsertAfter = NULL;
    tvInsert.item.mask = TVIF_IMAGE|TVIF_SELECTEDIMAGE|TVIF_TEXT|TVIF_STATE;
    tvInsert.item.hItem = NULL;
    tvInsert.item.state = INDEXTOSTATEIMAGEMASK(1);
    tvInsert.item.stateMask =TVIS_STATEIMAGEMASK;
    tvInsert.item.cchTextMax          =6;
    tvInsert.item.iImage =0;
    tvInsert.item.iSelectedImage=1;
    tvInsert.item.cChildren =0;
    tvInsert.item.lParam =0; tvInsert.item.pszText = _T("历史回溯选择");
    HTREEITEM hRoot = m_Tree.InsertItem(&tvInsert); tvInsert.hParent = hRoot;
    tvInsert.item.pszText = _T("完全历史回溯");
    HTREEITEM hFull = m_Tree.InsertItem(&tvInsert);
    tvInsert.item.pszText = _T("分块历史回溯");
    HTREEITEM hFenKuai = m_Tree.InsertItem(&tvInsert); tvInsert.item.iImage = 2;
    tvInsert.item.iSelectedImage= 3;
    tvInsert.hParent = hFull;
    tvInsert.item.pszText = _T("按时间"); hFull_1=m_Tree.InsertItem(&tvInsert);
    tvInsert.item.pszText = _T("按河道名称"); hFull_2=m_Tree.InsertItem(&tvInsert); tvInsert.hParent = hFenKuai;
    tvInsert.item.pszText = _T("按时间"); hFenKuai_1=m_Tree.InsertItem(&tvInsert);
    tvInsert.item.pszText = _T("按河道名称"); hFenKuai_2=m_Tree.InsertItem(&tvInsert);
    tvInsert.item.pszText = _T("按项目"); hFenKuai_3=m_Tree.InsertItem(&tvInsert); m_treeImage.Detach();
    bitmap.Detach();
      

  2.   

    tvInsert.item.iImage =0; // 正常状态的图标索引
    tvInsert.item.iSelectedImage        =1;  // 选择状态的图标索引
      

  3.   

    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcsample98/html/_sample_mfc_fire.asp