在多文档视图的子框架中,将视图分为左右两个,
pLeft = (CTestView*)m_wndSplitter.GetPane(0,0);
pRight = (CTestView*)m_wndSplitter.GetPane(0,1);
菜单中定义两个按钮表示分别在左侧与右侧显示
按钮1事件
if (pLeft->GetDocument()->OnOpenDocument (m_lfilename))
pLeft->GetDocument()->SetPathName (m_lfilename);按钮2事件
if (pRight->GetDocument()->OnOpenDocument (m_lfilename))
pRight->GetDocument()->SetPathName(m_lfilename);可是点击按钮显示的时候都显示在了左侧的视图中,为什么阿

解决方案 »

  1.   

    估计是这个问题,pLeft 和pRight都是CTestView,你让他分割显示的都是显现的同一个View,所以对pLeft 和pRight的操作都是一样的。
    你生成一个CTestView2类,然后吧pRight 定义为CTestView2;
    pRight = (CTestView2*)m_wndSplitter.GetPane(0,1); 这样试试看看行不行。
      

  2.   

    我实验了一下,将右侧的视图更改为继承字editview的别的视图类,也是不好用的
      

  3.   

    你可以这样来做了,在pRight中定义一个消息函数,然后在MainFrmae里面向pRight发送消息,pRight就肯定会响应的!
      

  4.   

    需求就是能够同时显示两个文件,工具栏上的按钮1找到lfilename(假设为a.cpp)
    让左侧的视图显示文件lfilename,按钮2就是找到文件rfilename(假设为b.cpp)
    让右侧的视图显示文件rfilename,但是我现在得情况是无论a.cpp,b.cpp都在pLeft上面显示,
    楼上的朋友说“你的文档模板把文档和左视图捆绑在一起了”能详细说明一下么??
      

  5.   

    你的两个事件响应函数都是获取文档调用OnOpenDocument函数,而两个视图关联的都是同一文档对象,所以结果是相同的。
    你可以用两个文档,分别与两个视图关联,或者自己来处理打开文件的相关操作。
      

  6.   

    CTestView继承EditView,我就是想在左右两个CTestView显示不同的文件。
      

  7.   

    构造一个CFile对象打开要显示的文件,用这个CFile对象构造一个CArchive对象,通过串行化给视图类加载数据。
    对于EditView,只要你自己读出数据,然后SetWindowText就可以了。
      

  8.   

    如你所说的只需在DOCUMENT类OPEN时指定去刷新左右的视图就可以了。通过GETNEXTVIEW函数得到相应的视图指针,再进行操作就好了。或者在视图里UPDATE的时候指定刷新。不过你这种设计怪怪的。呵。同样内容的东西一般就是一个视图,你这个打开多个文档就是了,要分割窗口吗?