一个SDI工程,菜单上有2个按钮A和B,有三个视图,分别是a、b、c,
a视图是独立的,b和c是左右关系的分割视图。
我想点菜单A时出现视图a,点菜单B时出现b和c,
可以来回切换,请问有没有办法?该如何做?ps:如果是2个独立的视图之间来回切换很好做,碰到这种
其中有一个是分割视图的情况就不知道该如何做了:(

解决方案 »

  1.   

    你可以分割视图看作另外一个独立的视图嘛就是说创建时你可以创建两个frame
      

  2.   

    把b和c做到一个单独的视图里啊,very easy!
      

  3.   

    把b和c放在另一个视图中,比如d,然后切换a和d即可
      

  4.   


    哪位高手能否提供一个在SDI工程中分割两个视图的例子让大家学习学习。
      

  5.   

    @try876(彼岸)
    2个frame之间如何切换?给点代码看看@flyelf(空谷清音)
    如何把一个切分视图放入另一个视图里面?好像不行吧,视图可以放到视图里面?
      

  6.   

    CSplitterWnd一般采用CreateStatic函数创建2个Pane,然后对于2个Pane分别调用CreateView函数进行视图的创建,你说的视图切换实际上是对指定的Pane的视图进行销毁,然后再原有视图的位置
    上重新创建你所需要的视图,这个可以使用DeleteView和CreateView进行创建,注意CCreateStruct结构的填写,你看看MFC的源代码,其中视图都是以CSplitterWnd为父窗口的,关键在于DeleteView以后
    找到创建View所需要的大小,然后对CSplitterWnd调用RecalcLayout函数对整个窗口进行重排
    就可以达到你要的效果,但是还是有点闪烁,这时可以将CreateView的坐标直接计算出来,如果不调用RecalcLayout就可以不闪烁。