先贴出代码吧,很简单
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT /*lpcs*/,
CCreateContext* pContext)
{
CRect rct;
GetClientRect(&rct);
CSize size = rct.Size();
size.cx /= 2;
size.cy /= 2; // 创建拆分窗口
if (!m_wndSplitter.CreateStatic(this, 1, 2))
return FALSE; // Create main drawing view
m_wndSplitter.CreateView(0, 1, RUNTIME_CLASS(CTestView), size, pContext); // Create left splitter window
if (!m_wndLeftSplitter.CreateStatic(&m_wndSplitter, 2, 1,
WS_CHILD | WS_VISIBLE, m_wndSplitter.IdFromRowCol(0, 0)))
return FALSE; // Create Tv
m_wndLeftSplitter.CreateView(0, 0, RUNTIME_CLASS(CLeftView), size, pContext);
// Create Lv
m_wndLeftSplitter.CreateView(1, 0, RUNTIME_CLASS(CEqmLv), size, pContext); return TRUE;
}此为SDI工程
CEqmLv继承自CListView。
我想要的结果是:竖直切割器m_wndSplitter将Frame分为左右两部分,右边放CTestView(派生自CView),水平切割器m_wndLeftSplitter将左边分为上下两部分,上边放CLeftView(派生自CTreeView),下边放CEqmLv。上述代码确实能分隔成功,问题是:程序运行起来时,CLeftView和CEqmLv的宽度都很小,将近0,宽度并不是我想要的size.cx大小,只能手工拖动竖直分割条,才能看见CLeftView和CEqmLv,而右边的CTestView是全屏大小。
热心的兄弟给说说,是怎么回事,如何才能达到我想要的效果,谢谢,在线等