gpt4 book ai didi

c++ - 重新伸展树(Splay Tree) View 项

转载 作者:太空宇宙 更新时间:2023-11-04 16:22:35 25 4
gpt4 key购买 nike

我正在处理一个旧的 MFC 应用程序。应用程序中有一个 TreeView 控件。 OnItemExpanding 函数被覆盖。我通过扩展获得 TreeViewItem 的子项。如果一个节点第一次展开,它的子节点就会被填充。如果项目没有子级,则展开图标(+ 号)将从 TreeViewItem 中移除。

现在的问题是我扩展了一个没有子节点的节点。完成一些工作后,子节点将添加到该节点。但是现在我无法获得新添加的 child ,因为缺少展开图标。我如何刷新 TreeView 中的特定节点。我创建了一个刷新按钮。因为我能够在 TreeView 中找到我当前选择的节点,但下一步是什么。

这是代码。

void CMyTreeView::OnItemExpanding(CTreeCtrl& tree, NMHDR* pNMHDR, LRESULT* pResult) 
{
//This is only called when I click on expand (+ sign)
//some check here which populates children.
}

void CMyTreeView::RefreshNode(CTreeCtrl& tree, HTREEITEM selectedNode)
{
// What should I do here?
}

最佳答案

你必须将 TVITEM 的 cChildren 设置为 'one':

TVITEM tvItem = {0};
tvItem.mask = TVIF_HANDLE | TVIF_CHILDREN;
tvItem.hItem = selectedNode;
tvItem.cChildren = 1;
tree.SetItem(&tvItem);

关于c++ - 重新伸展树(Splay Tree) View 项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15269305/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com