我在 tree control 控件上面显示了一些目录,我现在想在运行的时候动态编辑它的节点,也就是可以改变名字:
  但是我在运行的时候没有反映,不知道是哪边错了代码如下请大家指点:
  void CTreeDlg::OnSelchangedTree1(NMHDR* pNMHDR, LRESULT* pResult) 
{
NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
// TODO: Add your control notification handler code here
h=m_tree.GetSelectedItem();
CString text;
text=m_tree.GetItemText(h);
  *pResult = 0;
}void CTreeDlg::OnEndlabeleditTree1(NMHDR* pNMHDR, LRESULT* pResult) 
{
TV_DISPINFO* pTVDispInfo = (TV_DISPINFO*)pNMHDR;
// TODO: Add your control notification handler code here
m_tree.SetItemText(pTVDispInfo->item.hItem,pTVDispInfo->item.pszText);
*pResult = 0;
}  

解决方案 »

  1.   

     void CTreeDlg::OnSelchangedTree1(NMHDR* pNMHDR, LRESULT* pResult) 

    NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR; 
    // TODO: Add your control notification handler code here 
    h=m_tree.GetSelectedItem(); text=m_tree.GetItemText(h); 
    m_tree.EditLabel(h);
      

  2.   

    你只需要响应TVN_ENDLABELEDIT通知,最后*pResult = 1;即可。另外注意,TreeCtrl要设置TVS_EDITLABELS风格。
      

  3.   

    设置树控件的属性edit labels