首页 > 代码库 > 积累的VC编程小技巧之树操作

积累的VC编程小技巧之树操作

1.如何在TreeList中加图标?

  [问题提出]
  请问treeview控件和treectrl控件的用法有何不同呢?向如何imagelist控件中加图象呀?
  [解决方法]
  1)
    HICON hicon[8];
    m_imageList.Create(16,16,0,8,8);
    hicon[0]=AfxGetApp()->LoadIcon(IDI_ICON0);
    hicon[1]=AfxGetApp()->LoadIcon(IDI_ICON1);
    hicon[2]=AfxGetApp()->LoadIcon(IDI_ICON2);
    hicon[3]=AfxGetApp()->LoadIcon(IDI_ICON3);
    hicon[4]=AfxGetApp()->LoadIcon(IDI_ICON4);
    hicon[5]=AfxGetApp()->LoadIcon(IDI_ICON5);
    hicon[6]=AfxGetApp()->LoadIcon(IDI_ICON6);
    hicon[7]=AfxGetApp()->LoadIcon(IDI_ICON7);
    for(int n=0;n<8;n++)
        m_imageList.Add(hicon[n]);

    CTreeCtrl *pTree=(CTreeCtrl *)GetDlgItem(IDC_TREE);
    pTree->SetImageList(&m_imageList,TVSIL_NORMAL);

  2)
    CImageList cil1;
    cil1.Create(32,32,TRUE,2,2);
    cil1.Add(pApp->LoadIcon(IDI_DAO1));
    cil1.Add(pApp->LoadIcon(IDI_DAO2));
    cil1.Add(pApp->LoadIcon(IDI_DAO3));
    cil1.Add(pApp->LoadIcon(IDI_DAO4));
    cil1.Add(pApp->LoadIcon(IDI_DAO5));
    cil1.Add(pApp->LoadIcon(IDI_DAO6));
    cil1.Add(pApp->LoadIcon(IDI_DAO7));
    cil1.Add(pApp->LoadIcon(IDI_DAO8));
    cil1.Add(pApp->LoadIcon(IDI_DAO9));
    
    //设置图象列表
    m_list.SetImageList(&cil1,LVSIL_NORMAL);

 

2.如何选择CTreeCtrl中的节点文本进行编辑?

在向CTreeCtrl中加入一项后,有什么方法可以编辑该节点的文本呢?

首先设置你的CcompTreeCtrl具有TVS_EDITLABELS属性.在设计时用控件属性来设置在运行时用GetStyle()/SetStyle()成员函数来设置.然后请看下述代码:

HTREEITEM CCompTreeCtrl::AddSet()
{
static int setCnt =3D 1;
HTREEITEM hItem;
CString csSet;

//create text for new note: New Set 1, New Set 2 ...
csSet.Format( _T( "New Set %d" ), setCnt++ );

hItem =3D InsertItem( csSet, IMG_CLOSEDFOLDER, IMG_CLOSEDFOLDER );

if( hItem !=3D NULL )
           EditLabel( hItem );

return hItem;
}