如何使用树形控件 

1、加一个CTree contrl     ID _MYTREE设置HASBUTTON 到ALWAYS SHOW SECLECTON的属性为TRUE

加一成员变量m_MyTree

2、BOOL CAaaDlg::OnInitDialog()
{
 CDialog::OnInitDialog();

 // Add "About..." menu item to system menu.

 // IDM_ABOUTBOX must be in the system command range.
 ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
 ASSERT(IDM_ABOUTBOX < 0xF000);

 CMenu* pSysMenu = GetSystemMenu(FALSE);
 if (pSysMenu != NULL)
 {
  CString strAboutMenu;
  strAboutMenu.LoadString(IDS_ABOUTBOX);
  if (!strAboutMenu.IsEmpty())
  {
   pSysMenu->AppendMenu(MF_SEPARATOR);
   pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
  }
 }

 // Set the icon for this dialog.  The framework does this automatically
 //  when the application's main window is not a dialog
 SetIcon(m_hIcon, TRUE);   // Set big icon
 SetIcon(m_hIcon, FALSE);  // Set small icon
 
 // TODO: Add extra initialization here
 //初始化树形控件节点
 TV_INSERTSTRUCT TreeCtrlItem;
 HTREEITEM hTreeItem;
 TreeCtrlItem.hInsertAfter=TVI_LAST;
 TreeCtrlItem.item.mask=TVIF_TEXT|TVIF_PARAM;
 //设置第一级节点
 TreeCtrlItem.hParent=TVI_ROOT;
 TreeCtrlItem.item.pszText="C:";
 TreeCtrlItem.item.lParam=1;
 hTreeItem=m_MyTree.InsertItem(&TreeCtrlItem);
 //设置第二级节点
 TreeCtrlItem.hParent=hTreeItem;
 TreeCtrlItem.item.lParam=10;
 TreeCtrlItem.item.pszText="Program Files";
 m_MyTree.InsertItem(&TreeCtrlItem);
 TreeCtrlItem.item.pszText="My Documents";
 m_MyTree.InsertItem(&TreeCtrlItem);
 TreeCtrlItem.item.pszText="Windows";
 m_MyTree.InsertItem(&TreeCtrlItem);

 //设置第一级节点
 TreeCtrlItem.hParent=TVI_ROOT;
 TreeCtrlItem.item.pszText="D:";
 TreeCtrlItem.item.lParam=1;
 hTreeItem=m_MyTree.InsertItem(&TreeCtrlItem);
 //设置第二级节点
 TreeCtrlItem.hParent=hTreeItem;
 TreeCtrlItem.item.lParam=10;
 TreeCtrlItem.item.pszText="Program Files";
 m_MyTree.InsertItem(&TreeCtrlItem);
 TreeCtrlItem.item.pszText="My Documents";
 m_MyTree.InsertItem(&TreeCtrlItem);
 TreeCtrlItem.item.pszText="Windows";
 m_MyTree.InsertItem(&TreeCtrlItem);
 return TRUE;  // return TRUE  unless you set the focus to a control
}

3、重载

void CAaaDlg::OnSelchangedMytree(NMHDR* pNMHDR, LRESULT* pResult)
{
// NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
 // TODO: Add your control notification handler code here
 LPNMTVGETINFOTIPW pNMTreeView= reinterpret_cast<LPNMTVGETINFOTIPW>(pNMHDR);
 CString StrPath;
 CString StrInfo;
 HTREEITEM CurItem=m_MyTree.GetSelectedItem();
 TV_ITEM TreeCtrlItem;
 TreeCtrlItem.hItem=CurItem;
 m_MyTree.GetItem(&TreeCtrlItem);
 StrInfo=m_MyTree.GetItemText(m_MyTree.GetSelectedItem());
 long CurlParam= TreeCtrlItem.lParam;
 if(CurlParam!=1)
 {
  TreeCtrlItem.hItem=m_MyTree.GetParentItem(m_MyTree.GetSelectedItem());
  m_MyTree.GetItem(&TreeCtrlItem);
  CurItem=TreeCtrlItem.hItem;
  StrPath=m_MyTree.GetItemText(CurItem);
  StrPath+="//";
  StrPath+=StrInfo;
 }
 else
 {
  StrPath=StrInfo;
 }
 GetDlgItem(IDC_EDITINFO)->SetWindowText(StrPath);
 *pResult = 0;
}

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值