现在还有个问题,对于这种OpenDocumentFile自动创建的窗口,我们怎么得到视图切换的响应消息,里面没有添加按钮

解决方案 »

  1.   

    OpenDocumentFile如果函数调用成功,返回CDocument对象的指针这里是文档对象,不是窗口类,不是视图,不知道你是怎么理解的。实现视图切换的方法:
    1. 向父框架类发送切换视图消息(自定义消息);
    2. 在父框架类中添加相应函数;响应函数的作用就是向主窗口(CMainFrame)发送WM_COMMAND 消息在左侧树视图中添加发送消息
    AfxGetApp()->m_pMainWnd->SendMessage(WM_COMMAND, ID_FIRST_VIEW);AfxGetApp()->m_pMainWnd->SendMessage(WM_COMMAND, ID_SECOND_VIEW);3. 在相应函数内使用DeleteView 删除原来的视,使用CreateView 关联新的
    视,再调用RecalcLayout 重绘视图区。
    消息响应函数:
    void CMainFrame::OnSwitchToFirst()
    {
    m_SplitterWnd.DeleteView(0,1);
    m_SplitterWnd.CreateView(0,1,RUNTIME_CLASS(CFirstView), CSize(0,0),NULL);
    m_SplitterWnd.RecalcLayout();
    }
    void CMainFrame::OnSwitchToSecond()
    {
    m_SplitterWnd.DeleteView(0,1);
    m_SplitterWnd.CreateView(0,1,RUNTIME_CLASS(CSecondView), CSize(0,0),NULL);
    m_SplitterWnd.RecalcLayout();
    }
      

  2.   

    我现在要切换的是右边 根据左边点击自动生成的视图,个数不确定,点击左边的就OpenDocumentFile生成一个文档,然后再里面添加内容
      

  3.   

    doc与view不是一回事,opendoc后,删除原listCtrl内容,重填。