如题!!!!!!!!!!!!!!!!!

解决方案 »

  1.   

    如果你觉得CSplitterWnd难用或者不是很灵活可以自己实现分割窗口的,创建一个分割条,拖动分隔条时移动两边窗口位置即可
      

  2.   

    http://blog.csdn.net/VisualEleven/article/details/6460564
      

  3.   

    给个例子吧
    //第一步:OnCreateClient
    BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT /*lpcs*/,
    CCreateContext* pContext)
    {
    m_bSpliterCreated = m_wndSplitter.CreateStatic(this,2,1);        //建立外层架构,一行两列 m_wndLeftSplitter.CreateStatic(              //建立内层架构,两行一列
    &m_wndSplitter,                          //以外层splitter为父窗体
    1,2,
    WS_CHILD|WS_VISIBLE,
    m_wndSplitter.IdFromRowCol(0,0)  //指定新的splitter占据外层架构的左方格
    );
    m_wndLeftSplitter.CreateView(
    0,0,
    RUNTIME_CLASS(CVedioClientView),
    CSize(0,0),
    pContext
    ); m_wndLeftSplitter.CreateView(
    0,1,
    RUNTIME_CLASS(CAlarmMesListView),
    CSize(0,0),
    pContext
    ); m_wndSplitter.CreateView(
    1,0,
    RUNTIME_CLASS(CDeviceTreeView),
    CSize(0,0),
    pContext
    );
        
    g_pVedioClientView = (CVedioClientView*)m_wndLeftSplitter.GetPane(0,0);
    g_pDeviceTreeView = (CDeviceTreeView*)m_wndSplitter.GetPane(0,0);
    g_pAlarmMesListView = (CAlarmMesListView*)m_wndSplitter.GetPane(1,0);
    g_pAlarmMesListView->SetWindowTextA("报警");
    return m_bSpliterCreated;
    }//第二步:OnSize也需要修改
    void CMainFrame::OnSize(UINT nType, int cx, int cy)
    {
    CFrameWnd::OnSize(nType, cx, cy); // TODO: 在此处添加消息处理程序代码
    CRect rect;
    GetWindowRect(&rect);
    if (m_bSpliterCreated)
    {
    m_wndSplitter.SetRowInfo(0,rect.Height()/2,1);
    m_wndSplitter.SetRowInfo(1,rect.Height()/2,1); m_wndLeftSplitter.SetColumnInfo(0,rect.Width()/2,1);
    m_wndLeftSplitter.SetColumnInfo(1,rect.Width()/2,1);
    m_wndSplitter.RecalcLayout();
    }
    }