一个MDI程序,我在其ChildFrame中使用两个CSplitterWnd继承类的对象把窗口静态切分为一个倒品字,并把左上区设为ActivePane(1号那块)|--------------|----|
|      1       | 2  |
|              |    |
|-------------------|
|      3            |
|-------------------|现在的问题是,我需要设定2#的宽度及3#的高度。我按照一些资料上提到的在OnSize中使用SetRowInfo...(SetColumnInfo)然后用RecalcLayout刷新的方法,但是运行时就会出错。而由于2、3位于第二行(列),也没法在切分时就设定其精确的数值。
大家帮忙看看有什么好方法么?

解决方案 »

  1.   

    你把它最大化。在初始化时就确定,用那个SetRowInfo和SetColumnInfo,不就行了吗?以后的大小随用户去拖吧!
      

  2.   

    不巧的是,我需要固定2#的宽度和3#的高度为某一数值,不管窗口实际多大,而且不让用户去拖。CSplitterWnd继承类中的OnMouseMove之类我都已经重载过了……
      

  3.   

    好象我有这样的例子:
     我也是 ChildFrame中使用两个CSplitterWnd继承类的对象把窗口静态切分
      //首先
    CSplitterWnd m_wndSplitter;
      //然后,因为CSplitterWnd里有一个设定大小的函数CreateView,可以这样
      m_wndSplitter.CreateView(0, 0, RUNTIME_CLASS(CTreeContainerWnd), CSize(130, 100), pContext) 
      CSize就是大小了。
    还有的,有个例子(也不知道管不管用?),要的话留言给地址我发给你
      

  4.   

    在CreateView的时候确实可以先指定1#的精确大小,但如果我改变了窗口大小后又怎么处置?OnSize里设置的话会运行时出错