MFC单文档多视图csplitterwnd实现,一个视图充满了整个界面,只有滑动分割
MFC单文档多视图csplitterwnd实现,一个视图充满了整个界面,只有滑动分割线才能看全单文档中使用csplitterwnd分割成两行,再将第一行分割为两列,最后运...
MFC单文档多视图csplitterwnd实现,一个视图充满了整个界面,只有滑动分割线才能看全
单文档中使用csplitterwnd分割成两行,再将第一行分割为两列,最后运行结果是第二行充满了整个视图窗口外,只有下拉分割线才能看到第一行已被分割为两列,加入setrowinfo也不起作用,求求大神,谁遇到这个问题,如何解决 展开
单文档中使用csplitterwnd分割成两行,再将第一行分割为两列,最后运行结果是第二行充满了整个视图窗口外,只有下拉分割线才能看到第一行已被分割为两列,加入setrowinfo也不起作用,求求大神,谁遇到这个问题,如何解决 展开
展开全部
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
if(m_wndSplitter1.CreateStatic(this, 2, 1, (WS_CHILD | WS_VISIBLE | WS_BORDER)) == NULL) //创建两行一列//
return FALSE;
m_wndSplitter1.CreateView(0,0,RUNTIME_CLASS(CView1),CSize(200,100), pContext);
if(m_wndSplitter2.CreateStatic(&m_wndSplitter1,1,2,WS_CHILD|WS_VISIBLE,m_wndSplitter1.IdFromRowCol(1, 0)) == NULL)//第二行创建成一行两列//
return FALSE;
m_wndSplitter2.CreateView(0,0,RUNTIME_CLASS(CView2),CSize(400,300),pContext);
m_wndSplitter2.CreateView(0,1,RUNTIME_CLASS(CView3),CSize(400,300),pContext);
return CFrameWndEx::OnCreateClient(lpcs, pContext);
}
追问
第一步 先创建两行一列 是正确的 第二步 是想在第一行再创建两列 一旦这么创建就出问题了
追答
在第一行创建新的列时要在用另外一个wndpslitter的对象,不然会报错。
creeatview(a,b,,,)a表示第几行,b表示第几列。
你想在第一行创建两列,就要把上面的创建顺序反过来,先建第一行的两列,然后在建下面的一行
if(m_wndSplitter2.CreateStatic(&m_wndSplitter1,1,2,WS_CHILD|WS_VISIBLE,m_wndSplitter1.IdFromRowCol(0, 0)) == NULL)
m_wndSplitter2.CreateView(0,0,RUNTIME_CLASS(CView2),CSize(400,300),pContext);
m_wndSplitter2.CreateView(0,1,RUNTIME_CLASS(CView3),CSize(400,300),pContext);
m_wndSplitter1.CreateView(1,0,RUNTIME_CLASS(CView1),CSize(200,100), pContext);
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询