[普通]CTreeCtrl

作者(passion) 阅读(909次) 评论(0) 分类( 软件)

      view类添加成员变量:

 

private:

       CTreeCtrl m_TreeCtrl;

       CImageListm_ImageList;

 

 

2.       OnCreate消息里处理创建:

 

m_TreeCtrl.Create(WS_VISIBLE|TVS_DISABLEDRAGDROP|WS_CHILD|WS_BORDER|TVS_HASLINES|TVS_HASBUTTONS|TVS_SHOWSELALWAYS|TVS_EDITLABELS,CRect(0,0,200,400),this,1);

 

       m_TreeCtrl.SetTextColor(RGB(0,0,255));

 

        m_ImageList.Create(16,16,ILC_COLOR32|ILC_MASK,0,0);

       m_TreeCtrl.SetImageList(&m_ImageList,TVSIL_NORMAL);

       m_TreeCtrl.ModifyStyle(0L,TVS_HASLINES|TVS_LINESATROOT|TVS_HASBUTTONS);

       for(inti=0;i<10;i++)

              m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON1+i));

 

       CTreeCtrl*pTreeCtl=&m_TreeCtrl;

       HTREEITEMitem;

       pTreeCtl->DeleteAllItems();

       item=pTreeCtl->InsertItem("基本信息",0,0,TVI_ROOT);

       pTreeCtl->InsertItem("¡À¡è?¡é",1,1,item);

       pTreeCtl->InsertItem("¨¬¡§Á¨º¨²",2,2,item);

       pTreeCtl->InsertItem("¨®°¦Ì¨¢1",3,3,item);

 

       item=pTreeCtl->InsertItem("¨¦¡¥",4,4,TVI_ROOT);

       pTreeCtl->InsertItem("¨°Ì£¤¨¦¡¥",5,5,item);

       pTreeCtl->InsertItem("¡ä?¨¦¡¥",6,6,item);

 

       item=pTreeCtl->InsertItem("䨰®?",7,7,TVI_ROOT);

       pTreeCtl->InsertItem("䨰®?¡èÁ¨º¬?",8,8,item);

       pTreeCtl->InsertItem("䨰®?À¡§À¨ª",9,9,item);

       pTreeCtl->InsertItem("䨰®?¨¦¡¥¨¢?",9,9,item);

 

现在效果图已经出来的,下面来增加对它的操作。

 

 

 

1,  删除所有项

 

void CTreeTestView::OnTreeopreatorDeleteallitems()

{

       // TODO: ¨²ä?¬¨ª¨®¨¹¢?ä|¤¨ª¨¬¨°ä¨²?

       if(!m_TreeCtrl.DeleteAllItems())

       {

              MessageBox("failed to delete all items");

       }

      

}

 

 

2,  删除选定项

 

void CTreeTestView::OnTreeopreatorDeleteselecteditem()

{

       // TODO: ¨²ä?¬¨ª¨®¨¹¢?ä|¤¨ª¨¬¨°ä¨²?

       HTREEITEMhItem=m_TreeCtrl.GetSelectedItem();

       m_TreeCtrl.DeleteItem(hItem);

 

}

 

3,  获取选定项的文本

 

void CTreeTestView::OnTreeopreatorGetselectediteminfo()

{

       // TODO: ¨²ä?¬¨ª¨®¨¹¢?ä|¤¨ª¨¬¨°ä¨²?

       HTREEITEMhItem=m_TreeCtrl.GetSelectedItem();

       CString strText;

       strText=m_TreeCtrl.GetItemText(hItem);

       MessageBox(strText);

}

 

4,  编辑选定项

 

void CTreeTestView::OnTreeopreatorEditselecteditem()

{

       // TODO: ¨²ä?¬¨ª¨®¨¹¢?ä|¤¨ª¨¬¨°ä¨²?

       // Replace the text in the label edit control, if possible.

       m_TreeCtrl.ModifyStyle(NULL,TVS_EDITLABELS);//¦¨¨?º¡Â??tÌ?¤??

       m_TreeCtrl.EditLabel(m_TreeCtrl.GetSelectedItem());//Ì¡À¡ã¨¢Ì??¨?À¨¤-Á¡ä¬?

}

 

 

这个消息有点特殊,同时要这样做:

1.       添加消息

 

afx_msg voidOnEndlabeleditTree1(NMHDR*pNMHDR,LRESULT*pResult);

 

2.       消息映射

 

ON_NOTIFY(TVN_ENDLABELEDIT,1,OnEndlabeleditTree1)

 

3.       实现消息

 

void CTreeTestView::OnEndlabeleditTree1(NMHDR*pNMHDR,LRESULT*pResult)

{

       TV_DISPINFO*pTVDispInfo=(TV_DISPINFO*)pNMHDR;

       // TODO: Add your control notification handler code here

       CStringstrText;

       m_TreeCtrl.GetEditControl()->GetWindowText(strText.GetBuffer(200),200);

       m_TreeCtrl.SetItemText(m_TreeCtrl.GetSelectedItem(),strText);//¦¨¨?À¨¤-¨®Ì??À?a¨¢Ì?

       *pResult=0;

}

 

 

5,  插入新项

 

void CTreeTestView::OnTreeopreatorInsertitem()

{

       // TODO: ¨²ä?¬¨ª¨®¨¹¢?ä|¤¨ª¨¬¨°ä¨²?

       HTREEITEMitem;

       CTreeCtrl*pTreeCtrl=&m_TreeCtrl;

        

       item=pTreeCtrl->InsertItem("new item",rand()%10,rand()%10,TVI_ROOT);

       pTreeCtrl->InsertItem("new item",1,1,item);

        

 

}

 

6,  修改选定项的文本

 

void CTreeTestView::OnTreeopreatorDynamicchangeselectedtextcontent()

{

       // TODO: ¨²ä?¬¨ª¨®¨¹¢?ä|¤¨ª¨¬¨°ä¨²?

       HTREEITEMhItem=m_TreeCtrl.GetSelectedItem();

       CString strText="change item";

       m_TreeCtrl.SetItemText(hItem,strText);

}

 

7,  响应鼠标左键双击

 

要响应通知消息(OnNotify:

1.       添加消息

2.      afx_msg void OnDblclkTree1(NMHDR*pNMHDR,LRESULT*pResult);

 

3.       消息映射

 

ON_NOTIFY(NM_DBLCLK,1,OnDblclkTree1)//这里的1是treectrl的ID

 

4.       消息实现

 

void CTreeTestView::OnDblclkTree1(NMHDR*pNMHDR,LRESULT*pResult)

{

       // TODO: Add your control notification handler code here

       HTREEITEMhItem =m_TreeCtrl.GetSelectedItem();

       CString strText;

       strText=m_TreeCtrl.GetItemText(hItem);

       MessageBox(strText);

       *pResult=0;

}


« 上一篇:wifi共享上网(至尊版wifi)
« 下一篇:ASP.NET附加数据库文件的方式,如何发布到IIS7而不导致SQLServer出错
在这里写下您精彩的评论
  • 微信

  • QQ

  • 支付宝

返回首页
返回首页 img
返回顶部~
返回顶部 img