对话框中有个tree控件,我想将控件的节点都保存在其他文件中(ini)。每次重新启动,
都需要到文件中去取节点数据再插到tree中。而且对tree控件有添加节点的功能,添加时要在节点和文件中都有相应的显示。

解决方案 »

  1.   

    这就是你需要做的工作啊实现保存节点到文件的功能以及读取文件内容到tree控件的功能
    两个过程是对称的
    至于文件的格式,你自己定就可以了
      

  2.   

    首先要做一个遍历tree所有节点的函数
    遍历的时候要记住每个节点的层次以及和哪个节点是父子关系
    有了这些就可以组织到一个文件了如果是我实现
    我会新建一个结构
    struct node
    {
      int index;
      CString indexText ; 
      int parentIndex;
    }nod ; 
    node代表每个节点的一个结构,包括自己的索引值、节点的文本、父节点的索引值
      

  3.   

    有了这个结构之后
    就可以保存每个节点的信息了
    nod * myTreeList ; 通过遍历所有节点得到总的节点数,然后就可以分配资源了
    保存到文件可以按照自己得格式
    比如文件头给出总的信息(总的节点数)
    然后每行表示一个节点
    1    第一个     0
    2    第二个     1
    3    第三个     2处理好保存到ini文件之后,反过来的过程就简单了
    读取文件内容到结构,然后插入到tree控件中至于你最后说的添加节点之后,数据反应到文件中去,也是很容易解决的
    如果添加节点,那么这个节点数据,我们首先分配一个结构给它,然后分配新的Index值
    节点文本,至于parentIndex,可以通过在tree中父节点的Index值得到
    最后把新分配并且赋值的结构链接到结构链表里这样的对tree控件的改动什么时候增加进文件,由你自己决定,取决于具体需要
      

  4.   

    http://www.vchelp.net/vchelp/file2002_3/CWzCombox.asp?type_id=3&class_id=1&cata_id=1&article_id=830
    Store and show Tree struct in combox --------------------------------------------------------------------------------Combox and ListBox: 作者姓名: orbit
    邮件地址: [email protected]
    作者相关信息: 作者的自我介绍 程序下载 http://www.vchelp.net/vchelp/file2002_3/CWzCombox_demo.zip
    代码下载 http://www.vchelp.net/vchelp/file2002_3/CWzCombox_src.zip
    开发环境: VC6 Windows 2000
    测试环境:Windows 2000 WindowsXP Windows 9X(with IE5 or later) 更新记录: 讲解: 界面图片:
     
    部分关键代码 typedef struct tagITEMDATA
    {
    WORD wParantOriginIdx;//the root item's parent is nRootIndex
    WORD wOriginIdx;//Original index when first insert to listbox
    BYTE cType;
    BYTE cLevel;
    }ITEMDATA,*LPITEMDATA;"wParantOriginIdx" 是父节点的原始索引(即父节点被insert到combox时的索引)。由于节点的索引会随着节点的添加或删除 而改变,所以要存下来。(这个设计存在BUG)"wOriginIdx" 是节点的原始索引。"cType" 节点类型,可以用作其他用途。"cLevel" 节点的Level,子节点的Level比父节点的Level高。这个结构是整个CWzCombox 类的核心。详情和具体的注释包含在代码中。. 其他信息: