下面是我的代码:(其余地方没有改动)BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
// TODO: 在此添加专用代码和/或调用基类

 BOOL rtn=SplitterH.CreateStatic(this,3,1);               //liuyong    分割窗口
 SplitterV.CreateStatic(&SplitterH, 1, 3, WS_CHILD | WS_VISIBLE | WS_BORDER,SplitterH.IdFromRowCol(0,0));  SplitterH.CreateView(1, 0, RUNTIME_CLASS(CBottomEditView), CSize(0, 0), pContext);
 SplitterH.CreateView(2, 0, RUNTIME_CLASS(CBottomEditView), CSize(0, 0), pContext);
 SplitterV.CreateView(0, 0, RUNTIME_CLASS(CBottomEditView), CSize(0,0), pContext);
 SplitterV.CreateView(0, 1, RUNTIME_CLASS(CDebugThreeView), CSize(0,0), pContext);
 SplitterV.CreateView(0, 2, RUNTIME_CLASS(CBottomEditView), CSize(0,0), pContext);     CRect rect;
 GetClientRect(&rect);
 CString str;
 str.Format("%d,   %d",rect.Width(),rect.Height());
 int x=rect.Width()-10;
 int y=rect.Height()-10;
 MessageBox(str);  SplitterH.SetRowInfo(0,y*3/4,0); 
 SplitterH.SetRowInfo(1,y/8,0);
 SplitterV.SetColumnInfo(0,x/6-15,0);
 SplitterV.SetColumnInfo(1,x*2/3+30,0);
 return rtn;
 
 //return CMDIFrameWnd::OnCreateClient(lpcs, pContext);
}下面是运行结果:
如果全部要求显示CBottomEditView的话   就不会出错,请问是什么原因?

解决方案 »

  1.   

    点击[重试]按钮,会进入调试状态,显示当前出错的MFC源代码。ALT+F7显示CallStack窗口,看看是在程序的哪行代码(不是MFC代码)出错。
      

  2.   

    在CChildFrame::OnCreateClient中分割
      

  3.   

    在CChildFrame::OnCreateClient中分割    确实解决了问题,  不过我还是没有理解过来,这样的话,每一个分割出来的视图的父框架就是ChildFrame了,实际上应该是MainFrame 才对吧?如何让一个视图绑定一个框架类呢?
      

  4.   

    在 MDI 中 view 在 CChildFrame 中,当然 要在 CChildFrame 分割。
    MainFrame 是 空的, 只是 CChildFrame 的 父 框架