CTreeCtrl的基本用法

来源:互联网 发布:c语言常用算法 编辑:程序博客网 时间:2024/05/22 17:23

 

1.  重载CTreeCtrl

class CPopMenuTreeCtrl : public CTreeCtrl

2.  增加消息函数

void CPopMenuTreeCtrl::OnRButtonDown(UINT nFlags, CPoint point)

{

       HTREEITEM hItem = HitTest(point,&nFlags);

        SelectItem(hItem);

       CTreeCtrl::OnLButtonDown(nFlags, point);

}

 

void CPopMenuTreeCtrl::OnLButtonDown(UINT nFlags, CPoint point)

{

       HTREEITEM hItem = HitTest(point,&nFlags);

      SelectItem(hItem);

       CTreeCtrl::OnLButtonDown(nFlags, point);

}

3.  在主对话框中增加树形数据的初始化

void CMainDlg::OnDisplayType()

{

       m_cTypeTree.DeleteAllItems();

       //增加根节点

       HTREEITEM hRoot = m_cTypeTree.InsertItem("分类管理");

       m_cTypeTree.SetItemData(hRoot,NULL_ITEM);

      

       //增加其他节点

       HTREEITEM hItem = NULL;

       for( int i=0; i<m_TypeList.size(); i++)

       {

              hItem = m_cTypeTree.InsertItem(m_TypeList[i].GetName(),0,0,hRoot);

              m_cTypeTree.SetItemData(hItem,m_TypeList[i].GetID());

       }

}

4.  在主对话框中增加消息函数

    void CMainDlg::OnClickTreeTrigger(NMHDR* pNMHDR, LRESULT* pResult)

{

       HTREEITEM hItem = m_cTypeTree.GetSelectedItem();

       if(hItem != NULL)

       {

              int nID = m_cTypeTree.GetItemData(hItem);

              if(nID == NULL_ITEM)//根节点

              {

              }

              else//子节点

              {

              }

       }

       *pResult = 0;

}

 

void CMainDlg::OnRclickTreeTrigger(NMHDR* pNMHDR, LRESULT* pResult)

{

       HTREEITEM hItem = m_cTypeTree.GetSelectedItem();

       if(hItem != NULL)

       {

              int nID = m_cTypeTree.GetItemData(hItem);

              if(nID == NULL_ITEM)//根节点

              {

              }

              else//子节点

              {

              }

       }

       *pResult = 0;

}

0 0
原创粉丝点击