高分求解决方法!是关于窗口分割(splitter)的!高手来,灌水无分!
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
CSize size1;
CRect rect(0, 0, 0, 0);
this ->GetWindowRect(&rect);
size1.cx = (rect.right - rect.left) / 2;
size1.cy = (rect.bottom - rect.top) / 4;
if(!m_wndSplitter.CreateStatic(this, 2, 1))
{
TRACE0("Failed to CreateStaticSpitter\n");
return FALSE;
}
if(!m_wndSplitter.CreateView(0, 0, RUNTIME_CLASS(CResultView), size1, pContext))
{
TRACE0("Failed to create first pane\n");
return FALSE;
}
if(!m_wndSplitter2.CreateStatic(
&m_wndSplitter,
1, 2,
WS_CHILD | WS_VISIBLE | WS_BORDER,
m_wndSplitter.IdFromRowCol(1, 0)
))
{
TRACE0("Failed to create nested splitter\n");
return FALSE;
}
if(!m_wndSplitter2.CreateView(0, 0, RUNTIME_CLASS(CUserView), size1, pContext))
{
TRACE0("Failed to create second pane\n");
return FALSE;
}
if(!m_wndSplitter2.CreateView(0, 1, RUNTIME_CLASS(CUserView2), CSize(0, 0), pContext))
{
TRACE0("Failed to create third pane\n");
return FALSE;
}
((CResultView*)(m_wndSplitter.GetPane(0, 0))) -> SetReadOnly(true);
SetActiveView((CView*)m_wndSplitter2.GetPane(0, 0));
return TRUE;
}
以上函数实现如下分割窗口:
|-----------------|
| |
|-----------------|
| | |
| | |
|-----------------|
现通过修改以上函数实现如下窗口形式:
|-----------------|
| | |
| | |
|-----------------|
| |
|-----------------|
并说明CreateView()函数的第4个参数即SIZE的具体用法
不能用SetRowInfo,即不能用
http://community.csdn.net/Expert/FAQ/FAQ_Index.asp?id=182284 中的类似方法