想要做成这样的界面,首先创建一个切分窗口,左边是CTreeView,右边可以是CListView,CFormView,CView等等。在点击左边树控件上面的不同选项时候,右边相应的显示不同视图。
     这种界面可不可以不用切份窗口实现啊
    
     谢谢大家

解决方案 »

  1.   

    可以啊,点击左边树控件上面的不同选项,可以用ShowWindow(SW_NORMAL)来显示你想要显示的视图,其他不要显示的用ShowWindow(SW_HIDE)
      

  2.   

    谢谢你。
       那我是不是应该创建多个视图,然后把它们都关联到该切份窗口的右视图啊,接着进行切换?怎么关联呢?用setactivepane?
       但是看例子似乎只能关联一个视图啊,可以贴一下思路吗? // Create two views
    if (!m_wndSplitter.CreateView(0,0,RUNTIME_CLASS(CLeftView),
    CSize(175,0), pContext))
    {
    TRACE0("Failed to create CLeftView\n");
    return -1;
    } if (!m_wndSplitter.CreateView(0,1,RUNTIME_CLASS(CRightView),
    CSize(0,0), pContext))
    {
    TRACE0("Failed to create CRightView\n");
    return -1;
    }
      

  3.   

    我上面说的并不是拆分窗口的思路,如果你要拆分窗口,可以考虑只用一个FormView,然后在上面放置ListCtrl和TreeCtrl,然后根据你的点击选择显示某一个控件或者隐藏某一个控件,当然这办法笨了一点,但如果控件不多的话,也是一个解决问题的办法。
      

  4.   

    可以临时杀了两个VIEW,然后再重新切分窗口(缺点是要记住左边视的状态,如果不要记就可以采用本法子。
    或是右边的视采用框架,先在其中全创建出所需要的视,再根据需要SHOW和HIDE即可
      

  5.   

    "右边的视采用框架,先在其中全创建出所需要的视,再根据需要SHOW和HIDE即可"可以说一下这个的具体思路吗?
      

  6.   

    http://support.microsoft.com/support/kb/articles/q149/2/57.asp
    149257 - How to Replace a View in a Splitter Window
      

  7.   

    只要实现这种界面就行了 也不一定非要用切份窗口 我昨天在网上下在了两个例子
    都是关于SDI下的切份窗口如何进行切换的 --方法都是使用 CSplitterWnd.DeleteView,切换的时候先把视图删除掉,然后动态的创建新的视图 从而实现切换的效果
        但是我觉得这种方法有一个缺点,如果我在我的视图中写了些东西(如果在CListView中写入了几行),删掉以后重新创建的话,这些东西就不见了。
       
        所以我想使用 show hide 
        这样就不存在我写的内容丢失的问题    所以我想问一下,您的第二种思路的实现方法 谢谢
      

  8.   

    Data should be stored in DOCUMENT, not in VIEW
      

  9.   

    创建一个继承自framewnd的类,在切分窗口时直接强行把右边的PANE创建为这个框架,
    在框架中作个函数用于切换视,在CREATE时创建所有的视,并只设一个可见。
      

  10.   

    找到新的解决方法 不过还是谢谢 :jiangsheng(蒋晟.MSMVP2004Jan)  :sinfee(口是心非) ()