MFC之树控件

树控件对应的类:

           CTreeControl

树控件属性设置:

          启用复选框:Check Boxes = True

          父节点显示+-按钮:Has Button = True ; Lines At Roots = True(若不想根节点显示+-按钮可以不设置)

         显示项的层次结构线:Has Lines = True;

 

 

添加树节点:

1     HTREEITEM hRootNode = m_tvwTree.InsertItem(_T(""));
2     HTREEITEM hNode = m_tvwTree.InsertItem(_T("老人"), hRootNode, TVI_LAST);
3     HTREEITEM hChildNode = m_tvwTree.InsertItem(_T("男人"), hNode, TVI_LAST);
View Code

NM_CLICK消息处理函数:

 1 void CTestTreecontrolDlg::OnNMClickTree1(NMHDR *pNMHDR, LRESULT *pResult)
 2 {
 3     CPoint PT;
 4     ::GetCursorPos(&PT);
 5     ::ScreenToClient(pNMHDR->hwndFrom, &PT);
 6 
 7     UINT uFlags;
 8     HTREEITEM hSelectedItem = m_tvwTree.HitTest(PT, &uFlags);
 9     if(NULL == hSelectedItem)
10     {
11         return;
12     }
13 
14     if(uFlags & TVHT_ONITEM)
15     {
16         CString str = m_tvwTree.GetItemText(hSelectedItem);
17         AfxMessageBox(str);
18     }
19 
20     *pResult = 0;
21 }
View Code

TVN_SELCHANGED消息处理函数:

 1 void CTestTreecontrolDlg::OnTvnSelchangedTree1(NMHDR *pNMHDR, LRESULT *pResult)
 2 {
 3     LPNMTREEVIEW pNMTreeView = reinterpret_cast<LPNMTREEVIEW>(pNMHDR);
 4 
 5     HTREEITEM hSelectedItem = m_tvwTree.GetSelectedItem();
 6     if(NULL == hSelectedItem)
 7     {
 8         return;
 9     }
10 
11     CString str = m_tvwTree.GetItemText(hSelectedItem);
12     if(str.IsEmpty())
13     {
14         return;
15     }
16 
17     AfxMessageBox(str);
18 
19     *pResult = 0;
20 }
View Code

 

           

posted @ 2015-10-27 21:19  believe……  阅读(1186)  评论(1)    收藏  举报