需要分割成3个视图,左边2个,右边1个,需要做出的效果如图1。

代码如下:
// MainFrm.h
class CMainFrame : public CFrameWnd
{
protected:
CSplitterWnd m_wndSplitterTB, m_wndSplitterLR;
}
// MainFrm.cpp
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
// TODO: 在此添加专用代码和/或调用基类
CRect rect;
GetClientRect(&rect);
if (!m_wndSplitterLR.CreateStatic(this, 1, 2))
return FALSE;
if (!m_wndSplitterLR.CreateView(0, 1, RUNTIME_CLASS(CRightView), CSize(100, rect.Height()), pContext))
return FALSE;
// 2行1列
if (!m_wndSplitterTB.CreateStatic(&m_wndSplitterLR, 2, 1, WS_CHILD | WS_VISIBLE, m_wndSplitterLR.IdFromRowCol(0, 0)))
return FALSE;
if (!m_wndSplitterTB.CreateView(0, 0, RUNTIME_CLASS(CTopView), CSize(rect.Width() - 100, rect.Height() / 2), pContext))
return FALSE;
if (!m_wndSplitterTB.CreateView(1, 0, RUNTIME_CLASS(CBottomView), CSize(rect.Width() - 100, 0), pContext))
return FALSE;
return TRUE;
//return CFrameWnd::OnCreateClient(lpcs, pContext);
}
但是使用以上代码,不管怎么调试都无法正常显示分割视图的宽度和高度(如图2)。

搞了几个小时,实在解决不了,帐号里已经没有技术分,不知能否得到前辈们的指教?
若不吝赐教,万分感激!

代码如下:
// MainFrm.h
class CMainFrame : public CFrameWnd
{
protected:
CSplitterWnd m_wndSplitterTB, m_wndSplitterLR;
}
// MainFrm.cpp
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
// TODO: 在此添加专用代码和/或调用基类
CRect rect;
GetClientRect(&rect);
if (!m_wndSplitterLR.CreateStatic(this, 1, 2))
return FALSE;
if (!m_wndSplitterLR.CreateView(0, 1, RUNTIME_CLASS(CRightView), CSize(100, rect.Height()), pContext))
return FALSE;
// 2行1列
if (!m_wndSplitterTB.CreateStatic(&m_wndSplitterLR, 2, 1, WS_CHILD | WS_VISIBLE, m_wndSplitterLR.IdFromRowCol(0, 0)))
return FALSE;
if (!m_wndSplitterTB.CreateView(0, 0, RUNTIME_CLASS(CTopView), CSize(rect.Width() - 100, rect.Height() / 2), pContext))
return FALSE;
if (!m_wndSplitterTB.CreateView(1, 0, RUNTIME_CLASS(CBottomView), CSize(rect.Width() - 100, 0), pContext))
return FALSE;
return TRUE;
//return CFrameWnd::OnCreateClient(lpcs, pContext);
}
但是使用以上代码,不管怎么调试都无法正常显示分割视图的宽度和高度(如图2)。

搞了几个小时,实在解决不了,帐号里已经没有技术分,不知能否得到前辈们的指教?
若不吝赐教,万分感激!