我想对一个SDI静态切分成三部分。首先切分成上下两部分,然后再将下面的切分成左右两部分。请问在CMainFrame::OnCreateClient中的代码应该怎么写。
还有就是我想问一下可不可以将一个dlg放入其中的一个框架中,如果可以怎么操作。
谢谢了。

解决方案 »

  1.   

    在CMainFrame中定义
    protected:
    CSplitterWnd m_wndHSplitter, m_wndVSplitter;在BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT /*lpcs*/,
    CCreateContext* pContext)
    {
    // create splitter window
    if (!m_wndHSplitter.CreateStatic(this, 2, 1))
    return FALSE; m_wndHSplitter.SetRowInfo(0, 200, 0);
    //将下边划分为一行两列
    if(m_wndVSplitter.CreateStatic(&m_wndHSplitter, 1,2, WS_CHILD|WS_VISIBLE, m_wndHSplitter.IdFromRowCol(1, 0)) == NULL) 
    return FALSE;

    if( !m_wndHSplitter.CreateView(0, 0, RUNTIME_CLASS(CUpView), CSize(600, 200), pContext) ||
    !m_wndVSplitter.CreateView(0, 0, RUNTIME_CLASS(CLeftDownView), CSize(300, 200), pContext)||
    !m_wndVSplitter.CreateView(0, 1, RUNTIME_CLASS(CRightDownView), CSize(300, 200), pContext))
    {
    m_wndSplitter.DestroyWindow();
    return FALSE;
              } 
    return TRUE;
    }
      

  2.   

    m_wndSplitter.DestroyWindow();把这一点改为          {
    m_wndHSplitter.DestroyWindow();//水平分割控件
                      m_wndVSplitter.DestroyWindow();//竖直分割控件
    return FALSE;
              } 
      

  3.   

    谢谢,楼上的高手。
    那可不可以将一个对话框放在其中的一个view里面呢?
      

  4.   

    可以,你只需要把这个VIEW从CFormView中继承过来即可,这样,在你的资源中你会看到该FormView的对话框
      

  5.   

    我建了一个对话框,然后从VFormView中派生了CFView。我把上面程序中的最后一个
    RUNTIME_CLASS()的参数改为了CFView,是这样做么?但不能运行。提示要我终止程序。
      

  6.   

    搞定了,呵呵。谢谢byry(pepsi)的帮助。最后一个问题怎么把帖子弄到“已解决”里面?我新手对论坛不熟,^_^。
      

  7.   

    我在继承自CFormView的对话框中的按钮写的函数怎么没有用啊。我写了一个MessageBox,可是点了没有任何反应。请高手指教。