ctreectrl 改变节点的父节点

ctreectrl 改变节点的父节点,第1张

CTreeCtrl没有这样的 *** 作,目前只能将数据和树分离,如果出现了要给当前节点插入一个节点作为父节点的话,只能删除整个树然后根据数据重新构造(简单粗暴)。或者就自己写个函数从当前位置遍历重新添加到你新添加的节点那,如果SetItemData了的话,建议还是简单粗暴得了

首先打开树控件的属性对话框,添加单击事件如下图 *** 作,

,以上 *** 作会自动向工程中添加单击处理函数如下:

void CXXXXXX::OnNMClickTree1(NMHDR *pNMHDR, LRESULT *pResult)

{

// TODO: 在此添加控件通知处理程序代码

CPoint Pos

::GetCursorPos(&Pos)  //获取鼠标点击的位置坐标

CPoint pt(Pos)

m_Treectrol.ScreenToClient(&pt)  //有屏幕坐标转成  控件坐标(树控件的客户区坐标)

HTREEITEM hSelItem = m_Treectrol.HitTest(pt)  //通过HitTest获取单击的子项

CRect rec

m_treeTaskRule.GetItemRect(hSelItem, &rec, TRUE)

if (hSelItem != 0 )//&& rec.PtInRect(pt)         //判断是否单击到子项(注释掉的代码为是否点击到子项区域一般是其文字显示区域)

{

m_Treectrol.SelectItem(hSelItem) //选中点击项

// add your  code

}

*pResult = 0

}

tree control控件就是树形控件在树形控件中每一个结点都有一个句柄(HTREEITEM),同时添加结点时必须提供的参数是该结点的父结点句柄,利用 HTREEITEM InsertItem( LPCTSTR lpszItem, HTREEITEM hParent = TVI_ROOT, HTREEITEM hInsertAfter = TVI_LAST )可以添加一个结点,pszItem为显示的字符,hParent代表父结点的句柄,当前添加的结点会排在hInsertAfter表示的结点的后面,返回值为当前创建的结点的句柄


欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/bake/7870968.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-10
下一篇2023-04-10

发表评论

登录后才能评论

评论列表(0条)

    保存