天天看点

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

  [问题提出]

  请问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);

在向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;

}