麻辣GIS微信平台

更多 GIS 干货

微信关注不错过

VC++开发GIS系统(85)遍历CTreeCtrl节点(根据名称查找节点)

之前在实现文件显示和隐藏文件激活时候,开始想用遍历CTreeCtrl的方法,不过后来废弃了。但是在网上找到了一个遍历CTreeCtrl的函数,这里分享一下,需要的可以参考,代码如下(下面的函数主要实现的是根据特定名称查找节点,里面用到了CTreeCtrl的遍历)。

// name - 要查找的节点的名称
// tree - 要查找的Tree
// hRoot -根节点(指定特定节点下的)

HTREEITEM FindItem(const CString& name, CTreeCtrl& tree, HTREEITEM hRoot)
{
    // 检查查找的是不是根节点
    CString text = tree.GetItemText(hRoot);
    if (text.Compare(name) == 0)
        return hRoot; 

    // 获取第一个子节点
    HTREEITEM hSub = tree.GetChildItem(hRoot);
    // CTreeCtrl的遍历
    while (hSub)
    {
        // 如果是要查找的节点返回
        HTREEITEM hFound = FindItem(name, tree, hSub);
        if (hFound)
            return hFound; 

        // 如果不是,继续下一个子节点
        hSub = tree.GetNextSiblingItem(hSub);
    } 

    // return NULL if nothing was found
    return NULL;
}

如果是遍历整个树,可以直接用下面的方法

HTREEITEM CTreeDemoDlg::FindItem(const CString& name, CTreeCtrl& tree)
{
    HTREEITEM root = m_tree.GetRootItem();
    while(root != NULL)
    {
        HTREEITEM hFound = FindItem(name, tree, root);
        if (hFound)
            return hFound; 
    
        root = tree.GetNextSiblingItem(root);
    }
    
    return NULL;
}
麻辣GIS-Sailor
作者:
GIS爱好者,学GIS,更爱玩GIS。
微博关注
手机阅读
赞赏支持
手机阅读
微信捐助麻辣GIS
微信打赏
支付宝捐助麻辣GIS
支付宝打赏

声明

1.本文所分享的所有需要用户下载使用的内容(包括但不限于软件、数据、图片)来自于网络或者麻辣GIS粉丝自行分享,版权归该下载资源的合法拥有者所有,如有侵权请第一时间联系本站删除。

2.下载内容仅限个人学习使用,请切勿用作商用等其他用途,否则后果自负。

3.如果本文对您有所帮助,请您对我们团队进行 打赏捐助让我们在传播3S的路上可以走得更远,不胜感激。PS:如果你是学生党,请优先把经费用于购买学习资料 以及 与小哥哥/小姐姐约会上:-)

如您有疑问,可在文末留言,或到麻辣GIS QQ群中提问。

QQ群(一):291616564 加入QQ群

QQ群(二):166408035 加入QQ群

QQ群(三):627853279 加入QQ群

QQ群(四):436386604 加入QQ群

QQ群(五):606176554 加入QQ群

QQ群(六):946178380 加入QQ群

QQ群(七):861271808 加入QQ群

新疆互助群:910717627 加入QQ群

微信公众号:malagis,扫描右边二维码直接关注。

发表评论