我想问一下:使用CSplitterWnd将客户区分割成两个视图后,如何得到每个视图的指针?

解决方案 »

  1.   

    不是这样用的
    你先派生两个view类,
    然后用RUNTIME()把这两个类用你的CSplitterWnd分割
      

  2.   

    这么难啊!哪位大虾能详细教一下啊,或者哪有源代码也行。RUNTIME()是什么意思啊?谢谢!
      

  3.   

    获得第一个视图
    CMyView* pView = (CMyView*)m_wndSplitter.GetPane(0, 0);
      

  4.   

    if(!m_wndSplitter.CreateStatic(this, 1, 2))         //按一行两列分割
        return FALSE;

        CRect rect;
        GetClientRect(&rect);    if (!m_wndSplitter.CreateView(0, 0, RUNTIME_CLASS(CMyTreeView), CSize(rect.Width() / 3, rect.Height()), pContext) || 
    !m_wndSplitter.CreateView(0, 1, RUNTIME_CLASS(CMyListView), CSize(rect.Width() * 2 / 3, rect.Height()), pContext))                 // 宽度之比为1:2
       {
              m_wndSplitter.DestroyWindow();
    return FALSE;
       }   CWnd* pWnd = NULL;
       pWnd = m_wndSplitter.GetPane(0, 0);
       // 获得第一个视图(CMyTreeView)
       CMyTreeView pView1 = DYNAMIC_DOWNCAST(CMyTreeView, pWnd);   pWnd = m_wndSplitter.GetPane(0, 1);
       // 获得第二个视图(CMyListView)
       CMyListView pView2 = DYNAMIC_DOWNCAST(CMyListView, pWnd);