我是一个单文档程序,将VIEW静态拆分成三个,我不知道怎么让这三个VIEW都和DOC联系起来。
希望给点代码,谢谢

解决方案 »

  1.   

    http://www.vckbase.com/document/viewdoc/?id=192
      

  2.   

    视图在CMainFrame中OnCreateClient时会通过createview的调用CCreateContext的参数与文档关联在一起。
      

  3.   

    最熟悉的陌生人:你让我看的文章我看过了,里面说要在程序初始化的时候加入:
    AddDocTemplate (new CMultiDocTemplate(IDR_FRAME, 
             RUNTIME_CLASS(CTestDocMulViewDoc), 
             RUNTIME_CLASS(CMDIChildWnd), 
             RUNTIME_CLASS(CPictureView)));
    这几句的作用是什么啊?我没加这几句程序好象也没什么问题。
      

  4.   

    我在自己建的VIEW里执行GetDocument(),可是找不到DOC啊?
      

  5.   

    把基类里的GetDocument函数拷过来就可以调用返回了!
      

  6.   

    有两种方法:
    一:是静态切分时创建视图时让你指定Context里包含DOC的指针。
    二:AfxGetApp、GetFirstDocumentTel、、、、、
      

  7.   

    "是静态切分时创建视图时让你指定Context里包含DOC的指针"我就是静态切分,不知道怎么指定Context里包含DOC的指针啊,我不太会,能不能给点代码啊~~~
      

  8.   

    多个视共享同一文档框架,但从不同的视类创建,每个视可以为文档提供不同的观察和编辑方法。比如一个视用图形观察文档,而另一个视用文本编辑文档中对象的属性。这种情况也适应于用不同的视来观察文档的不同部分。这种类型的实现方法是通过重载OnCreateClient函数实现。下面的例子实现了图中的分割窗口。
      BOOL CMainFrame::OnCreateClient( LPCREATESTRUCT,CCreateContext* pContext)  {  RECT rect;  // 先分割为 1X2的形式  m_wndSplitter1.CreateStatic(this, 1, 2, WS_CHILD | WS_VISIBLE );  m_wndSplitter1.SetColumnInfo(0,300,0); // 设置第一列的宽度  // 将第一列进一步分割为 2X1的形式  m_wndSplitter2.CreateStatic( &m_wndSplitter1,2, 1, WS_CHILD | WS_VISIBLE,   m_wndSplitter1.IdFromRowCol(0, 0));  // 创建各个视  m_wndSplitter1.CreateView(0, 1,RUNTIME_CLASS(CviewView1), CSize(0, 0), pContext);  m_wndSplitter2.CreateView(0, 0,RUNTIME_CLASS(CviewView2), CSize(0, 0), pContext);  m_wndSplitter2.CreateView(1, 0,   RUNTIME_CLASS(CviewView3), CSize(0, 0), pContext);  ......  }
      

  9.   

    是这样的,我建立了一个SDI程序,向导自己生成了一个DOC和一个VIEW类,我现在拆分了窗口,就象上面写的那样
    BOOL CMainFrame::OnCreateClient( LPCREATESTRUCT,CCreateContext* pContext)
    {
       m_wndSplitter1.CreateStatic(this, 1, 2, WS_CHILD | WS_VISIBLE );
       m_wndSplitter1.CreateView(0, 0,RUNTIME_CLASS(CTestView), CSize(0, 0), pcontext);
       m_wndSplitter1.CreateView(0, 1,RUNTIME_CLASS(CMyView), CSize(0, 0), pContext);
    }
    其中CTestView是向导生成的VIEW类,CMyView是我自己生成的继承自CView的类。在这两个View类的OnDraw中我分别进行了一些显示DOC的操作,但是CMyView类中我无法获得DOC的指针。   
      

  10.   

    无法获得DOC的指针是什么概念呢?返回空值?把CTestView中的GetDocument()考到CMyView中试试?