部分代码如下:
.CPP文件
CString chArrTreeContent[]=
{
_T("root"),
    _T("parent1"),
  _T("child11"),
   _T("child12"),
   _T("parent2"),
       _T("child21"),
   _T("child22"),
   _T("child23"),
};
BOOL CTrytreeDlg::OnInitDialog()
{
CDialog::OnInitDialog();
  ......
// TODO: 在此添加额外的初始化代码
m_sldpercent.SetRange(1,50);
m_sldpercent.SetPos(5);
m_sldinterval.SetRange(0,10);
m_sldinterval.SetPos(1);
m_progress.SetRange(0,100);
//imagelist
m_imagelist.Create(16,16,FALSE,3,0);
m_imagelist.Add(LoadIcon(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDI_ROOT)));
m_imagelist.Add(      LoadIcon(    AfxGetInstanceHandle(),  MAKEINTRESOURCE(IDI_PARENT)));
m_imagelist.Add(LoadIcon(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDI_CHILD)));
    //tree
m_tree.SetImageList(&m_imagelist,TVSIL_NORMAL);
return TRUE;  // 除非将焦点设置到控件,否则返回 TRUE
}
void CTrytreeDlg::InitiaTreeDemo(void)
{
HTREEITEM hItem0,hItem1,hItem2;
//增加根节点root
TVINSERTSTRUCT tvItem;
tvItem.hParent=NULL;
tvItem.hInsertAfter=TVI_LAST;
tvItem.item.mask=TVIF_TEXT|TVIF_IMAGE|TVIF_SELECTEDIMAGE;
tvItem.item.pszText=(LPTSTR)(LPCTSTR)chArrTreeContent[0];
tvItem.item.iImage=tvItem.item.iSelectedImage=0;
hItem0=m_tree.InsertItem(&tvItem);
//增加两个子节点:p1,p2
    tvItem.hParent=hItem0;
tvItem.item.iImage=tvItem.item.iSelectedImage=1;
tvItem.item.pszText=(LPTSTR)(LPCTSTR)chArrTreeContent[1];
hItem1=m_tree.InsertItem(&tvItem);
tvItem.item.pszText=(LPTSTR)(LPCTSTR)chArrTreeContent[4];
    hItem2=m_tree.InsertItem(&tvItem);
    //增加p1的子节点c1,c2
    tvItem.item.iImage=tvItem.item.iSelectedImage=2;
    tvItem.hParent=hItem1;
tvItem.item.pszText=(LPTSTR)(LPCTSTR)chArrTreeContent[2];
m_tree.InsertItem(&tvItem);
tvItem.item.pszText=(LPTSTR)(LPCTSTR)chArrTreeContent[3];
m_tree.InsertItem(&tvItem);
//
tvItem.item.iImage=2;
    tvItem.hParent=hItem2;
tvItem.item.pszText=(LPTSTR)(LPCTSTR)chArrTreeContent[5];
m_tree.InsertItem(&tvItem);
tvItem.item.pszText=(LPTSTR)(LPCTSTR)chArrTreeContent[6];
m_tree.InsertItem(&tvItem);
tvItem.item.pszText=(LPTSTR)(LPCTSTR)chArrTreeContent[7];
m_tree.InsertItem(&tvItem);}
.h文件
public:
CTreeCtrl m_tree;
public:
CSliderCtrl m_sldpercent;
public:
CSliderCtrl m_sldinterval;
public:
CProgressCtrl m_progress;
public:
afx_msg void OnBnClickedOkbutton();
public:
afx_msg void OnTvnEndlabeleditTree(NMHDR *pNMHDR, LRESULT *pResult);
public:
CImageList m_imagelist;
public:
void InitiaTreeDemo(void);

解决方案 »

  1.   

    一直有:
    >e:\vc++实验保存\trytree\trytree\trytreedlg.cpp(121) : error C2065: 'IDI_ROOT' : undeclared identifier
    1>e:\vc++实验保存\trytree\trytree\trytreedlg.cpp(122) : error C2065: 'IDI_PARENT' : undeclared identifier
    1>e:\vc++实验保存\trytree\trytree\trytreedlg.cpp(123) : error C2065: 'IDI_CHILD' : undeclared identifier
    这三个错误
      

  2.   

    BOOL CMainFrame::InitTree(void)
    {
    // get LeftTree
    CLeftView * pLeft=GetLeftPane();//pMain->
    CTreeCtrl&  LeftTree=pLeft->GetTreeCtrl();
    // set tree style
    LONG NewStyle=GetWindowLong(LeftTree,GWL_STYLE);
    NewStyle=NewStyle|TVS_HASBUTTONS|TVS_HASLINES|TVS_INFOTIP|
     TVS_LINESATROOT|TVS_SHOWSELALWAYS|TVS_EDITLABELS;
    SetWindowLong(LeftTree,GWL_STYLE,NewStyle);
    // 
    CString dir; 
    BOOL dfend = FALSE;
    CBitmap bitmap;
    UINT nID;
    //
    Imagelist.Create(16,16,ILC_COLOR8 | ILC_MASK,6,4); // for icon
    for (nID=IDB_DIR;nID<=IDB_LAST;nID++) //0-9  
    {
    bitmap.LoadBitmap(nID);
    Imagelist.Add(&bitmap,(COLORREF)0xFFFFFF);
    bitmap.DeleteObject();
    }
    //
    LeftTree.SetImageList(&Imagelist,TVSIL_NORMAL);
    return TRUE;
    }