在CMainFrame中加入
protected:
      CSplitterWnd m_wndSplitter;
重载OnCreateClient()函数。
将OnCreateClient改为
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT /*lpcs*/,
       CCreateContext* pContext)
{
    m_wndSplitter.CreateStatic(this, 2, 1));
    m_wndSplitter.CreateView(0, 0, RUNTIME_CLASS(CFirstView),
                                    CSize(100, 100), pContext));
    m_wndSplitter.CreateView(1, 0, RUNTIME_CLASS(CSecondView),
                                    CSize(100, 100), pContext));
    return TRUE;
}CFirstView 各CSecondView 如果相同就是为一个View构造两个窗口,
如果需要另一个View,可从CView中派生,之后将新View的头方件
include进MainFram.cpp中就可以了。

解决方案 »

  1.   

    关于拆分的窗口是一定要用2个View的,如果只想用一个视图,
    可在上面所说的基础上,在return true;之前用SetActiveView((CView*)m_wndSplitter.GetPane(0,1));来激活第一个视图,之后在文档类中来控制另一个视图即可
      

  2.   

    我用你方法做过,可是编译出错,出错代码如下:
    d:\demo\demoview.h(21) : error C2143: syntax error : missing ';' before '*'
    d:\demo\demoview.h(21) : error C2501: 'CDemoDoc' : missing storage-class or type specifiers
    d:\demo\demoview.h(21) : error C2501: 'GetDocument' : missing storage-class or type specifiers
    D:\demo\MainFrm.cpp(115) : error C2059: syntax error : ')'
    D:\demo\MainFrm.cpp(116) : error C2059: syntax error : ')'
      

  3.   

    对不起,我疏忽了,重新贴:
    d:\demo\demoview.h(21) : error C2143: syntax error : missing ';' before '*'
    d:\demo\demoview.h(21) : error C2501: 'CDemoDoc' : missing storage-class or type specifiers
    d:\demo\demoview.h(21) : error C2501: 'GetDocument' : missing storage-class or type specifiers好象原来框架生成的视图类中的GetDocument成员函数有问题
    但是我没有修改过它,不知道为什么会这样
      

  4.   

    在domoview.h中加入
    #include "demoDoc.h"
      

  5.   

    如果你没有为CDomoView产生新的档,那么将CDemoView中的CDemoDoc
    全部换成你的原来的文档类名,并在demoview.h中加入包含原来文档头
    文件的语句。
      

  6.   

    我把GetDocument的定义部分和函数部分删除,编译通过
    但是我想要用到文档类怎么办?