利用CSplitter将窗口分割成4个子窗口
静态分割后出现一个问题  就是y轴现实的子窗口  和我设定的大小不一样
CMainFrame里的OnCreateClient函数的内容如下BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs,CCreateContext* pContext)
{
CRect rect;
GetClientRect(&rect);
int x=rect.Width();
int y=rect.Height();

if(!m_splitter.CreateStatic(this,2,1))
{
return FALSE;
} if(!m_splitter2.CreateStatic(&m_splitter,1,2,WS_CHILD|WS_VISIBLE,m_splitter.IdFromRowCol(0,0)))
{
return FALSE;
} if(!m_splitter2.CreateView(0,0,RUNTIME_CLASS(ul_View),CSize(x/6,3*y/4),pContext))
{
return FALSE;
} if(!m_splitter2.CreateView(0,1,RUNTIME_CLASS(ur_View),CSize(5*x/6,3*y/4),pContext))
{
return FALSE;
} if(!m_splitter3.CreateStatic(&m_splitter,1,2,WS_CHILD|WS_VISIBLE,m_splitter.IdFromRowCol(1,0)))
{
return FALSE;
}

if(!m_splitter3.CreateView(0,0,RUNTIME_CLASS(dl_View),CSize(x/2,y/4),pContext))
{
return FALSE;
} if(!m_splitter3.CreateView(0,1,RUNTIME_CLASS(dr_View),CSize(x/2,y/4),pContext))
{
return FALSE;
}

return TRUE;
}我设定的上下比例是3:1,可是显示的却是下面的子窗口占满了整个窗口,还要手动拖动来调整比例。
截图如下
我想是显示是这样的
求高人啊 为什么 CSize(x,y) x轴显示是对的  y轴就有问题啊?

解决方案 »

  1.   

    结贴率为0,的确一般每人回答,算了,看中楼主估计不是故意的,以后要改正!我还是回答一下吧
    m_wndSplitter.SetColumnInfo
    SetRowInfo
    这两个函数设置窗口的大小,你自己调试一下!
      

  2.   


    不行啊  在后面加
            m_splitter2.SetRowInfo(0,3*y/4,0);
    m_splitter2.SetColumnInfo(0,x/6,0);
    m_splitter3.SetRowInfo(0,y/4,0);
    m_splitter3.SetColumnInfo(0,x/2,0);还是很原来一样