用分割窗口,从CFormView派生一个类,把其中的一个视图设为该类。

解决方案 »

  1.   

    你说的是分割窗口,实现它要用CSplitterWnd,在MainFrame的OnCreateClient中创建分割视图;
    还有类似对话框的界面那是FormView,你可以在资源视图下新建一个FormView,在上面创建编辑框等控件。
      

  2.   

    多看看书,,这样才能系统的学到东西。
    MFC Windows程序设计,孙鑫的VC6 深入详解都是不错的书籍。
      

  3.   

    CSplitterWnd 网上有例子,到VCkbase看看
      

  4.   

          |view2|
    view1 |_____|
          |view3|
    ______|_____|BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
    {
        // TODO: 在此添加专用代码和/或调用基类
        BOOL bCreateSuccess;    bCreateSuccess = m_wndHorSplitter.CreateStatic(this, 1, 2);  //水平方向切成一行两列
        if (!bCreateSuccess) 
        {
            TRACE0("Failed to Split HorizontalSplitter Window\n");
            return FALSE;
        }    bCreateSuccess = m_wndVerSplitter.CreateStatic(&m_wndHorSplitter, 2, 1, 
            WS_CHILD|WS_VISIBLE, m_wndHorSplitter.IdFromRowCol(0,1));  //将第二列再切成两行
        if (!bCreateSuccess) 
        {
            TRACE0("Failed to Split VerticalSplitter Window\n");
            return FALSE;
        }    CRect rcClient; 
        GetClientRect(&rcClient);
        int cxRect = rcClient.Width();
        int cyRect = rcClient.Height();    bCreateSuccess = m_wndHorSplitter.CreateView(0, 0, RUNTIME_CLASS(CView1), CSize  (cxRect/5,cyRect), pContext);
        if (!bCreateSuccess) 
        {
            TRACE0("Failed to Create View1\n");
            return FALSE;
        }    bCreateSuccess = m_wndVerSplitter.CreateView(0, 0, RUNTIME_CLASS(CView2), CSize(cxRect*4/5,cyRect*2/3), pContext);
        if (!bCreateSuccess) 
        {
            TRACE0("Failed to Create View2\n");
            return FALSE;
        }    bCreateSuccess = m_wndVerSplitter.CreateView(1, 0, RUNTIME_CLASS(CView3), CSize(cxRect*4/5,cyRect*1/3), pContext);  //
        if (!bCreateSuccess) 
        {
            TRACE0("Failed to Create View3\n");
            return FALSE;
        }

        m_bCreateSplitter = TRUE;
        return TRUE;
    }