MFC单文档多视图csplitterwnd实现,一个视图充满了整个界面,只有滑动分割

MFC单文档多视图csplitterwnd实现,一个视图充满了整个界面,只有滑动分割线才能看全单文档中使用csplitterwnd分割成两行,再将第一行分割为两列,最后运... MFC单文档多视图csplitterwnd实现,一个视图充满了整个界面,只有滑动分割线才能看全
单文档中使用csplitterwnd分割成两行,再将第一行分割为两列,最后运行结果是第二行充满了整个视图窗口外,只有下拉分割线才能看到第一行已被分割为两列,加入setrowinfo也不起作用,求求大神,谁遇到这个问题,如何解决
展开
 我来答
在伏虎井攀岩的珠帘藤
2016-09-24 · TA获得超过321个赞
知道小有建树答主
回答量:566
采纳率:100%
帮助的人:357万
展开全部
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);
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式