天天看點

積累的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;

}