1 //增加按鈕 2 void CMFCApplication8Dlg::OnBnClickedButtonAdd() 3 { 4 //樹中添加節點 5 CString strText; 6 GetDlgItemText(IDC_EDIT1, strText); 7 if (strText.GetLength() == 0) { 8 AfxMessageBox(TEXT("請輸入文本")); 9 return; 10 } 11 HTREEITEM hItem = m_tree.GetSelectedItem();//獲取當前被選中的節點 12 if (hItem == NULL) 13 hItem = TVI_ROOT; 14 15 TVINSERTSTRUCT ts = { 0 }; 16 ts.hParent = hItem; 17 ts.hInsertAfter = TVI_LAST; 18 ts.item.pszText = strText.GetBuffer(); 19 ts.item.mask = TVIF_TEXT; 20 HTREEITEM hNewItem = m_tree.InsertItem(&ts); 21 m_tree.SelectItem(hNewItem); //選中新加入的節點 22 m_tree.EnsureVisible(hNewItem); //樹太高看不見問題 23 } 24 25 //刪除按鈕 26 void CMFCApplication8Dlg::OnBnClickedButtonDel() 27 { 28 //獲取當前被選中的節點 29 HTREEITEM hItem = m_tree.GetSelectedItem();//獲取當前被選中的節點 30 if (hItem == NULL) { 31 AfxMessageBox(TEXT("請選擇一個節點")); 32 return; 33 } 34 HTREEITEM hParent = m_tree.GetParentItem(hItem); 35 m_tree.DeleteItem(hItem); 36 m_tree.SelectItem(hParent); 37 } 38 39 //修改按鈕 40 void CMFCApplication8Dlg::OnBnClickedButtonUpdate() 41 { 42 //獲取當前被選中的節點 43 HTREEITEM hItem = m_tree.GetSelectedItem();//獲取當前被選中的節點 44 if (hItem == NULL) { 45 AfxMessageBox(TEXT("請選擇一個節點")); 46 return; 47 } 48 CString strText; 49 GetDlgItemText(IDC_EDIT1, strText); 50 if (strText.GetLength() == 0) { 51 AfxMessageBox(TEXT("請輸入文本")); 52 return; 53 } 54 m_tree.SetItemText(hItem, strText); 55 } 56 57 //選中新節點事件 58 void CMFCApplication8Dlg::OnTvnSelchangedTree1(NMHDR *pNMHDR, LRESULT *pResult) 59 { 60 LPNMTREEVIEW pNMTreeView = reinterpret_cast<LPNMTREEVIEW>(pNMHDR); 61 //獲取當前被選中的節點 62 HTREEITEM hItem = m_tree.GetSelectedItem();//獲取當前被選中的節點 63 if (hItem != NULL) { 64 CString strText = m_tree.GetItemText(hItem); 65 SetDlgItemText(IDC_EDIT1, strText); //選中節點文本添加到編輯框中 66 } 67 68 *pResult = 0; 69 }