新建一个单文档应用程序,在框架窗口类CMainFrame中声明一个CsplitterWnd类的成员变量m_wndSplitter,用于分割窗口。代码如下:
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext) 
{
// TODO: Add your specialized code here and/or call the base class

         CRect rect;
GetClientRect(&rect); m_wndSplitter.CreateStatic(this,1,2); m_wndSplitter.CreateView(0,0,
RUNTIME_CLASS(CLeftView),
CSize(rect.Width()/5,rect.Height()),
pContext); m_wndSplitter.CreateView(0,1,
RUNTIME_CLASS(CTsView),
CSize(rect.Width()-rect.Width()/5,rect.Height()),
pContext);
 
return TRUE;
// return CFrameWnd::OnCreateClient(lpcs, pContext);
}
在这里用到两个视图类,一个为自定义的CLeftView,一个是系统开始生成的CTsView
在CMainFrame的cpp文件中我已包含以上两视图类的头文件。运行报错如下:Compiling...
MainFrm.cpp
f:\vc\ts\tsview.h(23) : error C2143: syntax error : missing ';' before '*'
f:\vc\ts\tsview.h(23) : error C2501: 'CTsDoc' : missing storage-class or type specifiers
f:\vc\ts\tsview.h(23) : error C2501: 'GetDocument' : missing storage-class or type specifiers
Error executing cl.exe.ts.exe - 3 error(s), 0 warning(s)
后来查到,此时要在CTsView的头文件中加入CTsDoc的头文件才运行通过,为何?不解啊。