Sorry!是这样的:左边一个,右边两个(分上下)

解决方案 »

  1.   

    如果是窗口,那就用SetWindowRgn(...),SetWindowPos(...),CalcWindow(...).
      

  2.   

    //这是我左一右二(上下),参考!※
    BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext) 
    {
    // TODO: Add your specialized code here and/or call the base class
    CRect rect;
    GetClientRect(&rect);
    //
    if(!m_SplitWnd.CreateStatic(this, 1, 2)){
    TRACE0("Failed to CreateStaticSplitter\n");
    return FALSE;
    }
    if(!m_SplitWnd.CreateView(0, 0, RUNTIME_CLASS(CViewTree), CSize(rect.Width()/5, 0), pContext)){
    TRACE0("Failed to create first pane\n");
    return FALSE;
    }
    // if(!m_SplitWnd.CreateView(0, 1, RUNTIME_CLASS(CViewList), CSize(0, 0), pContext)){
    // TRACE0("Failed to create first pane\n");
    // return FALSE;
    // }
    if (!m_SplitRight.CreateStatic(&m_SplitWnd, 2, 1, WS_CHILD | WS_VISIBLE | WS_BORDER, m_SplitWnd.IdFromRowCol(0, 1) )){
    TRACE0("Failed to create nested splitter\n");
    return FALSE;
    }
    if (!m_SplitRight.CreateView(0, 0, RUNTIME_CLASS(CViewList), CSize(0,rect.Height()/2), pContext)){
    TRACE0("Failed to create second pane\n");
    return FALSE;
    }
    if (!m_SplitRight.CreateView(1, 0, RUNTIME_CLASS(CViewPropPage), CSize(0,0), pContext)){
    TRACE0("Failed to create third pane\n");
    return FALSE;
    }
    //
    SetActiveView((CView*)m_SplitWnd.GetPane(0,0));
    return TRUE;
    }