在分割视图中,我想在其中一个视图中向另一个视图用SendMessage函数发送WM_COMMAND消息,但是不知怎样获取另一个视图的指针?请高手指点。谢谢!!

解决方案 »

  1.   

    我用了下面这种方法,怎么不行呢?
    void CToolView::OnButton1() 
    {
    CMainFrame *pMain=(CMainFrame *)AfxGetApp()->m_pMainWnd; CConferenceView *pView=(CConferenceView *)pMain->GetActiveView(); 
    pView->SendMessage(WM_COMMAND,MAKEWPARAM(IDT_LINE,0),0); 
    }
      

  2.   

    GetFirstView   GetNextView 遍历View
      

  3.   

    CMainFrame* pfrm=(CMainFrame*)AfxGetApp()->m_pMainWnd ;

    pfrm->m_wndsp1.SetActivePane (0,1);

    CMidListView* pviewnew=NULL;
    pviewnew=(CMidListView*)pfrm->GetActiveView();
    请注意使用setActivePane,设置活动窗格。
      

  4.   

    void CMainFrame::SwitchToView(int nViewType)
    {
    CView* pView = (CView*)m_wndSplitter2.GetPane(0,0);
    CRect rcRight,rcFrame;
    pView->GetClientRect(&rcRight);
    GetClientRect(&rcFrame);
    switch(nViewType)
    {
    case ListPCMView: //  0PCM-ListPCMView  m_pPCMView  
    {
    if(!pView->IsKindOf(RUNTIME_CLASS(CListPCMView)))
    {
    //删除旧的视图
    m_wndSplitter2.DeleteView(0,0);
    //创建新的视图
    m_wndSplitter2.CreateView(0,0,RUNTIME_CLASS(CListPCMView),CSize(0,280),NULL);
    //调整分布
    m_wndSplitter2.RecalcLayout();
    m_pPCMView= (CListPCMView*)m_wndSplitter2.GetPane(0,0); }
    break;
    }
    case ListINTERFACEView: // 12(中继,坐席)-ListINTERFACEView ,m_pINTERFACEVView
    {
    if(!pView->IsKindOf(RUNTIME_CLASS(CListINTERFACEView)))
    {
    m_wndSplitter2.DeleteView(0,0);
    m_wndSplitter2.CreateView(0,0,RUNTIME_CLASS(CListINTERFACEView),CSize(0,280),NULL);
    m_wndSplitter2.RecalcLayout();
    m_pINTERFACEVView= (CListINTERFACEView*)m_wndSplitter2.GetPane(0,0);
    }
    break;
    }
    case ListCONFView: // 3会议-ListCONFView ,  m_pCONFView
    {
    if(!pView->IsKindOf(RUNTIME_CLASS(CListCONFView)))
    {
    m_wndSplitter2.DeleteView(0,0);
    m_wndSplitter2.CreateView(0,0,RUNTIME_CLASS(CListCONFView),CSize(0,280),NULL);
    m_wndSplitter2.RecalcLayout();
    m_pCONFView= (CListCONFView*)m_wndSplitter2.GetPane(0,0);
    }
    break;
    }
    case ListVOICEView: // 4语音ListVOICEView  -m_pVOICEView
    {
    if(!pView->IsKindOf(RUNTIME_CLASS(CListVOICEView)))
    {
    m_wndSplitter2.DeleteView(0,0);
    m_wndSplitter2.CreateView(0,0,RUNTIME_CLASS(CListVOICEView),CSize(0,280),NULL);
    m_wndSplitter2.RecalcLayout();
    m_pVOICEView= (CListVOICEView*)m_wndSplitter2.GetPane(0,0);
    }
    break;
    }
    default:
    break;
    } //CListCtrl& ctl=GetListCtrl(); 
    }