是不是只能使用CSplitterWnd切分这个窗口,具体如何实现?

解决方案 »

  1.   

    用MoveWindow或者SetWindowPos可以改变控件的大小
      

  2.   

    http://community.csdn.net/Expert/topic/3147/3147044.xml?temp=.348736
      

  3.   

    响应OnSize函数,利用
    MoveWindow和SetWindowPos可以改变大小
      

  4.   

    用鼠标控制,就像多文档界面里鼠标移动到Splitter上时就会变成可拖动状态可以改变左右两边的大小
      

  5.   

    最近问这个的怎么这么多???响应WM_SIZE消息,一个例子:
    void COracleAssistView::OnSize(UINT nType, int cx, int cy) 
    {
    CFormView::OnSize(nType, cx, cy); CRect rect;
    GetClientRect(&rect);

    int nWidth = rect.Width();
    int nLeight = rect.Height();
    if(m_edit.GetSafeHwnd())
    { m_edit.SetWindowPos(this,rect.left + nWidth/100,rect.top +nLeight/100,nWidth-nWidth/100*2,nLeight/100*45,SWP_SHOWWINDOW|SWP_NOZORDER);
    } if(m_btnExec.GetSafeHwnd())
    {
    m_btnExec.SetWindowPos(this,rect.left + nWidth/100*40,
    rect.top + nLeight/100*47,nWidth/15,nLeight/100*5 ,SWP_SHOWWINDOW|SWP_NOZORDER);

    }

    if(m_ctrList.GetSafeHwnd()) //m_ctrlList是listctrl的变量
    {  m_ctrList.SetWindowPos(this,rect.left + nWidth/100,
    rect.top + nLeight/100*58,nWidth-nWidth/100*2,nLeight/100*52,SWP_SHOWWINDOW|SWP_NOZORDER);

    } }
      

  6.   

    OnResize只能在整个窗口改变大小的时候才起作用,和我问的不太一样,我窗口大小是固定的,不需改变。只不过想改变窗口上的CTreeCtrl和CListCtrl的尺寸
      

  7.   

    拖动鼠标也是如此只要获取区域大小GetClientRect(&rect);即可
      

  8.   

    不在OnSize是一样的用MoveWindow或者SetWindowPos,你只要传递给它适当的参数就可以
    把代码贴到的控件大小处理函数是