如题,譬如用一个CSplitterWnd对象把一个单文档窗口平分为4个窗口,主窗体变化时如何使里面的4个窗体保持是平分的?还有一个问题就是:程序一开始就最大化了,OnCreateClient()中GetClientRect(&rc)不能取得最大化后的客户区大小,该如何才可以在OnCreateClient()获大正确的客户区大小?程序一开始最大化是这样实现的:http://dev.csdn.net/develop/article/28/article/28/28675.shtm,,,// Dispatch commands specified on the command line
 //在ParseCommandLine之后,ProcessShellCommand之前,添加这句!!!
 m_nCmdShow = SW_SHOWMAXIMIZED; 
 if (!ProcessShellCommand(cmdInfo))
  return FALSE;

解决方案 »

  1.   

    我觉得这些都不用楼主自己管吧?
    mfc会自动生成。
      

  2.   

    CSplitterWnd::SplitRow/CSplitterWnd::SplitColumn!
      

  3.   

    如果MFC自己干了的话我就不会问了~~~:)   牙科医生:能详细些不???我也试过响应WM_SIZE,,但在里面干些什么?CSplitterWnd对象定义在CMainFrame里的。在OnSize()中CSplitterWnd::SplitRow/CSplitterWnd::SplitColumn!?
      

  4.   

    void CMainFrame::OnSize(UINT nType, int cx, int cy) 
    {
       CFrameWnd::OnSize(nType, cx, cy);   CRect rect;
       GetClientRect( &rect );
       if( m_bSplitterCreated )  // m_bSplitterCreated set in OnCreateClient
       {
          m_wndSplitter.SetRowInfo(0, rect.Height()/2, 10);
          m_wndSplitter.SetRowInfo(1, rect.Height()/2, 10);
          m_wndSplitter.SetColumnInfo(0, rect.Width()/2, 10);
          m_wndSplitter.SetColumnInfo(1, rect.Width()/2, 10);
          m_wndSplitter.RecalcLayout();
       }
    }
      

  5.   

    在OnSize()中用CSplitterWnd::SetRowInfo来设置就可以吧!你就响应CMainFrm的OnSize就是,