关于ControlBar(DialogBar),拆分窗口及框架布局,请帮忙看一下:解决思路

关于ControlBar(DialogBar),拆分窗口及框架布局,请帮忙看一下:
我的程序界面是这个样子的:

      _______________________________
    |                           |                           |     |
    |_____________|_____________|     |
    |                           |                           |     |
    |_____________|_____________|     |
                        |_______________________________|__|

左上是一个拆分窗口,分成四个视图(视图是CView的派生类),右侧是一个DialogBar,下面是状态栏

我在CMainFrame的OnCreate函数里初始化生成右侧的DialogBar,在OnCreateClient函数里拆分视图,其中,拆分视图的代码是:

CRect   cr;  
GetClientRect(   &cr   );

if(!m_viewportSplitter.CreateStatic(this,2,2))
return   false;

m_viewportSplitter.CreateView(0,0,RUNTIME_CLASS(CTempView),CSize(0,0),pContext);

m_viewportSplitter.CreateView(0,1,RUNTIME_CLASS(CTempView),CSize(0,cr.Height()/2),pContext);

m_viewportSplitter.CreateView(1,0,RUNTIME_CLASS(CTempView),CSize(cr.Width()/2,0),pContext);

m_viewportSplitter.CreateView(1,1,RUNTIME_CLASS(CTempView),CSize(0,0),pContext);

但是程序运行之后四个拆分出的视图并不是平分了程序框架除了ControlBar和状态栏的空间,我看了一下运行之后的客户区大小,并不是除了除了ControlBar和状态栏的空间。

请帮我看看是为什么?怎么解决?

另外再问一下,我的拆分窗口类CSplitterWnd是我的程序里的CMainFrame的一个成员类,CSplitterWnd的成员函数能调用CMainFrame里的成员函数吗?


 


------解决方案--------------------
在CMainFrame::OnSize()中调整拆分框架的大小。
------解决方案--------------------
CWnd::IsVisable()
------解决方案--------------------
OnCreate函数里初始化生成右侧的DialogBar
把它放到OnCreateClient里面去怎么样。
原来做过一个程序,客户区应该是除了BAR之后的的吧。