我想在单文档切分视图,代码如下:
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext) 
{
m_splitterWnd.CreateStatic(this,1,2);//一行两列m_splitterWnd.CreateView(0,0,RUNTIME_CLASS(CCapFormView),CSize(835,500),pContext);
m_splitterWnd.CreateView(0,1,pContext->m_pNewViewClass,CSize (0,0),pContext);//kjview
m_splitterWndH.CreateStatic(&m_splitterWnd,2,1,WS_CHILD | WS_VISIBLE,m_splitterWnd.IdFromRowCol(0,0));
BOOL nRet = m_splitterWndH.CreateView(1,0,RUNTIME_CLASS(CShowView),CSize(0,0),pContext);
}
想显示如下图样:
|   capview|      |
|          |      |
|---------- kjview|
| showview |      |
|          |      |
开始showview就是不出来?
请大家帮忙

解决方案 »

  1.   

    m_splitterWnd.CreateStatic(this,1,2);//一行两列
    m_splitterWnd.CreateStatic(this,2,2);//
    应该是两行两列吧?
      

  2.   

    用return true;
    替换
    return CFrameWnd::OnCreateClient(lpcs, pContext);
      

  3.   

    BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext) 
    {
    m_splitterWnd.CreateStatic(this,1,2);//一行两列
            m_splitterWnd.CreateView(0,1,RUNTIME_CLASS(kjview),CSize(835,500),pContext);
    m_splitterWndH.CreateStatic(&m_splitterWnd,2,1,WS_CHILD | WS_VISIBLE,m_splitterWnd.IdFromRowCol(0,0));
                  m_splitterWndH.CreateView(0,0,RUNTIME_CLASS(capview),CSize (0,0),pContext);//kjview BOOL nRet = m_splitterWndH.CreateView(1,0,RUNTIME_CLASS(CShowView),CSize(0,0),pContext);
    }
      

  4.   

    同意楼上,你的函数里面似乎没有返回值

    return TRUE;
      

  5.   

    你试试行不?我没有试,估计应该可以
    最后还得加return true;
      

  6.   

    CRect rect;
    GetWindowRect(&rect);
    CSize panSize1(rect.Width()/4,rect.Height());
    CSize panSize2(3*rect.Width()/4,rect.Height()/2);
    m_splitterWnd.CreateStatic(this,1,2);
    m_splitterWndH.CreateStatic(&m_splitterWnd,2,1,WS_CHILD | WS_VISIBLE|WS_BORDER,
    m_splitterWnd.IdFromRowCol(0, 0));
    if (!m_splitterWndH.CreateView(0,0,RUNTIME_CLASS(CView2),panSize2,NULL))
    {
    TRACE0("Failed to create first pane\n");
    return FALSE;
    }
    if (!m_splitterWndH.CreateView(1,0,RUNTIME_CLASS(CView2),panSize2,NULL))
    {
    TRACE0("Failed to create second pane\n");
    return FALSE;
    }
    if (!m_splitterWnd.CreateView(0,1,RUNTIME_CLASS(CCutWindowView),panSize1,pContext))
    {
    TRACE0("Failed to create first pane\n");
    return FALSE;
    }
    return true;
      

  7.   

    谢谢各位,我早上已经解决了,我问题没有描述清楚,我的代码中有返回值
    返回语句是return true;
      

  8.   

    m_splitterWnd.CreateStatic(this,1,2);//一行两列
    m_splitterWnd.CreateView(0,1,pContext->m_pNewViewClass,CSize (175,300),pContext);
    m_splitterWnd.SetColumnInfo(0,835,835);
    m_splitterWndH.CreateStatic(&m_splitterWnd,2,1,WS_CHILD | WS_VISIBLE| WS_BORDER,m_splitterWnd.IdFromRowCol(0,0));
    m_splitterWndH.CreateView(0,0,RUNTIME_CLASS(CCapFormView),CSize(835,500),pContext);
    m_splitterWndH.CreateView(1,0,RUNTIME_CLASS(CShowView),CSize(835,100),pContext);
    return true;
     主要是capview createview时语句位置和splitter不对
      

  9.   

    to: crystal521(水晶泪)
    if (!m_splitterWndH.CreateView(0,0,RUNTIME_CLASS(CView2),panSize2,NULL))//此处不能为NULL
      

  10.   

    to  wecn(不得了) 
    此处为空是可以的,要看你View是基于什么类的了