功能:响应button1事件,窗口显示一个view,响应button2事件,窗口显示两个view(左右两个view)。这个如何实现呢?不是之间在OnCreateClient函数中使用添加切分函数的那种静态方法。

解决方案 »

  1.   

    我有个方法,首先在OnCreateClient中创建一个切分窗口,当点button1时,隐藏一个切分窗口,当点button2时,再将切分窗口显示出来。关于切分窗口的隐藏。有个很好的列子,见下面
    1、创建视图
    在CMainFrame中定义 Cmydeiview *m_myview;//设定我们要隐藏时保留的是:Cmydeiview
    如何隐藏分割窗口中的分割条和其中一个窗格
    BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext) 
    {
    m_split.CreateStatic(this,1,2);
    m_split.CreateView(0,0,RUNTIME_CLASS(CFromView),CSize(100,200),pContext);
    m_split.CreateView(0,1,RUNTIME_CLASS(Cmydeiview),CSize(100,200),pContext);//下面的是关键之处,就是多创建一个视图
    m_myview=(Cmydeiview*)CreateView(pContext,hzp_view_id);
    m_myview->ShowWindow(false);
    return true;
    }
    2、在菜单中加入两个选项用于控制视图的显视或是隐藏
    void CMainFrame::OnMenuitem32771() 
    {//隐藏窗格
    m_myview->SetDlgCtrlID(AFX_IDW_PANE_FIRST);
    m_myview->ShowWindow(true);
    m_split.ShowWindow(false);
    this->RecalcLayout();
    }void CMainFrame::OnMenuitem32772() 
    {
    //显视窗格
        m_myview->SetDlgCtrlID(hzp_view_id);
    m_myview->ShowWindow(false);
    m_split.ShowWindow(true);
    this->RecalcLayout();}