我被"切分窗口"的实例序气死了,哪位大哥帮忙解一下,高分!!在线等!!
第一:
运行AppWizard 创建一个单文档应用程序.工程名MySplitter.
第二:
在MainFrm.h中添加CSplitterWnd成员变量 CSplitterWnd m_wndSplitter;
创建 BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext) 消息映射;
第三:
在上面的函数中添加如下代码:
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
// TODO: Add your specialized code here and/or call the base class
CRect cr;
GetClientRect(&cr);
CSize paneSize(cr.Width()/3,cr.Height()/3);
m_wndSplitter.CreateStatic(this,3,1);
m_wndSplitter.CreateView(0,0,RUNTIME_CLASS(CMySplitterView),paneSize,pContext);
m_wndSplitter.CreateView(1,0,RUNTIME_CLASS(CMySplitterView),paneSize,pContext);
m_wndSplitter.CreateView(2,0,RUNTIME_CLASS(CMySplitterView),paneSize,pContext);
return TRUE;
return CFrameWnd::OnCreateClient(lpcs, pContext);
}
运行后老是有四个错误,本人没法解决,麻烦高手们帮帮忙,谢谢!!
问题点数:100、回复次数:4Top
1 楼cngdzhang()回复于 2004-05-03 19:39:10 得分 30
你做的是把一个窗口分成3块把?
这是我的一个程序的一部分,你可以参考一下
我的也是分三个,是1分2,再用其中一块1分2,共3块
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
// TODO: Add your specialized code here and/or call the base class
m_wndSplitter.CreateStatic (this,1,2);
m_wndSplitter.CreateView (0,0,RUNTIME_CLASS(Treeview),CSize(180,200),pContext);
m_wndSplitter2.CreateStatic(&m_wndSplitter,2,1,
WS_CHILD | WS_VISIBLE | WS_BORDER,
m_wndSplitter.IdFromRowCol(0, 1));
m_wndSplitter2.CreateView (0,0,RUNTIME_CLASS(EditviewInfo),CSize(200,100),pContext);
m_wndSplitter2.CreateView (1,0,RUNTIME_CLASS(EditviewFile),CSize(200,200),pContext);
return TRUE;
//return CFrameWnd::OnCreateClient(lpcs, pContext);
}
Top
2 楼freefalcon(心宇—消失中...)回复于 2004-05-03 19:39:17 得分 50
正是如此
不过你要在MainFrm.cpp中加上
#include "MySplitterView.h" //CMySplitterView的头文件
编译一下,如果还有关于document的错误,那么你还得在MySplitterView.h中class CMySplitterView定义之前加上
class CMySplitterDoc; //根据你的doc类名称确定
这是由于头文件包含顺序改变了,View比Doc提前定义,所以得加上前向声明Top
3 楼cngdzhang()回复于 2004-05-03 19:45:15 得分 20
return CFrameWnd::OnCreateClient(lpcs, pContext);
要屏蔽掉
另外
CMySplitterView
应该是你自己定义的一个从CView类(CEditView等的也行)派生的类
而且
你要在MainFrm.h文件(就是CMainFram所在的那个文件)中
#include "MySplitterView"
就是要把你定义的那个类的头文件也包含进来
要不,会出现错误的
Top
4 楼ymsh1982(fke)回复于 2004-05-03 19:48:01 得分 0
问题解决.谢谢各位了.
请问freefalcon(心宇):
(1 ) 为什么必须加#include "MySplitterView.h" //CMySplitterView的头文件
(2) 为什么必须加class CMySplitterDoc;Top




