郁闷了数天的有关问题,怎么单击CTreeCtrl的节点即允许编辑文本

郁闷了数天的问题,如何单击CTreeCtrl的节点即允许编辑文本
编辑列表控件文本的时候,添加单击事件是很容易实现的。但不知道为什么,CTreeCtrl要实现类似的功能就死活不行。我用Create方法代码创建了一个树控件,同时设置了它的风格TVS_EDITLABELS,然后添加了TVN_BEGINLABELEDIT消息,消息体代码是:
void CTreeVDlg::OnBeginLabelEdit(NMHDR* pNMHDR,LRESULT* pResult)
{
LPNMTVDISPINFO tvsi=(LPNMTVDISPINFO)pNMHDR;
CEdit* pedt=m_Tree.GetEditControl();
   
*pResult = 0;

}
每次单击节点的时候,这段代码都能执行,但编辑框就是不出来。

另有一种方法是用单击项目的方式得到所选的节点,然后调用EditControl,也没用。那个NM_CLICK消息的代码如下:
void CTreeVDlg::OnClick(NMHDR* pNMHDR,LRESULT* pResult)
{
HTREEITEM hItem=m_Tree.GetSelectedItem();
if(hItem)
{
CEdit* pedt=m_Tree.EditLabel(hItem);
}
}
我看见网上有很多贴子介绍如何编辑树节点,我一一试过,没一个行的,不知道他们写网页的时候有没有度过。



------解决方案--------------------
自己做一个;
void CTreeVDlg::OnClick(NMHDR* pNMHDR,LRESULT* pResult) 

CRect rc;
Edit=new CEdit;//Edit为成员变量
GetSelectItemRect(&rc);
Edit->Create(WS_CHILD,rc,this,125);
}
然后在killfocus中得到Edit的文本;
最后
Edit->DestroyWindow;
delete Edit