工具需求大体是这样:
    1.读取文本文件内容,并显示在工具的显示框中
    2.对文本文件进行各种操作,如筛选,搜索,这些操作的结果也都要动态地显示到工具地显示框中。用MFC有什么比较高效的实现方案,考虑过基于对话框的工程,但是基本达不到要求因为我的文本文件比较大,用Edit等这些控件显示时间不达标,同时用文件流读写时间估计也很长。。请教大家用MFC有什么可行的方案,我不是很了解文档-试图架构的工程,不知是否能解决我说的问题呢?请赐教!!

解决方案 »

  1.   

    我有类似的项目。我左边是CHTMLTree(一个高效的树型控件),主要是做楼主所说的,增删改,刷选,搜索等功能。右边则是显示每个树节点对应的信息。主要还是SpliterView。然后放置各种控件。达到修改节点的目的。最后我输出一个类似XML文件格式,但是是自主的文件格式。
      

  2.   

    我知道文档-视图框架提供了序列化的功能,这样对于我保存或读取文本文件是有帮助的。但是我还有一个问题是,用对话框控件显示这些记录也有不可容忍的时间,那比如在文档-视图的CEditView去显示能解决吗?CEditView和CEditBox的本质区别是什么???
      

  3.   

    你可以用SDI模式,在视图中显示文档内容,如果你的文档较大,可以分批次读入,如果说你还有其它操作如:筛选,搜索,那你就要开辟工作线程,这样才不会影响用户界面操作
      

  4.   


    能不能说一下我要怎么把文本文档里的内容一行一行地读到我的Doc类的一个成员:CObList容器里,这个容器
    元素是我自定义的字符串类
    class OneLine:public CObject
    {
      Serialize(CArchive ar)
     {
       if(ar.IsStoring())
       {
          ar<<str;
       }
       else
       {
          ar>>str; 
       } 
     }
     CString str;
    }这样写序列化函数能从文本文件里面成功填充我的CObList容器呢?
      

  5.   

    还想问一下啊,我新建了一个CEditView的工程,但是怎么打开一个文本文件,View视窗里怎么什么都没显示啊?Doc类不是已经在Serialize函数里面调用了SerializeRaw来处理文本的存取了吗?
      

  6.   

    你从文本里读出来后,要绘制!嗯,就是在CView::OnDraw中绘制,绘制一行,称动坐标,再绘制另一行,这样才能显示内容,不然是一片雪白滴!数据还是在内存中!至于你那个类能不能行,我学得你现阶段还是不要自己写派生类!先用别人的,读文本文件,windows核心编程有一个csv文件读取方式,你可以去看看,也许能够提供一个思路,代码我就不去帮你找了!