码迷,mamicode.com
首页 > 编程语言 > 详细

MFC中使用CSplitterWnd分割窗口后设置视图大小的问题

时间:2014-12-29 22:56:25      阅读:285      评论:0      收藏:0      [点我收藏+]

标签:

  开发环境:vs2010

  在对框架窗口进行分割之后需要根据需求设置每个分割窗口的大小,但是在通过createView(...)设置大小时,往往起不到想要的结果,如下代码并不能将框架的窗口按照预设的大小来进行分割:

技术分享
 1 BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
 2 {
 3     // TODO: 在此添加专用代码和/或调用基类
 4     //return CFrameWndEx::OnCreateClient(lpcs, pContext);
 5     isSplitter = splitterWnd(pContext);
 6     return isSplitter;
 7 }
 8 
 9 bool CMainFrame::splitterWnd(CCreateContext* pContext)
10 {
11     if(!m_mainSplitter.CreateStatic(this,1,3))
12         return false;
13     if(!m_leftSplitter.CreateStatic(&m_mainSplitter,2,1,WS_CHILD | WS_VISIBLE,m_mainSplitter.IdFromRowCol(0,0)))
14         return false;
15 
16     m_leftSplitter.CreateView(0,0,RUNTIME_CLASS(CInputImage),CSize(10,1),pContext);
17     m_leftSplitter.CreateView(1,0,RUNTIME_CLASS(CCalculateItem),CSize(10,1),pContext);
18     m_mainSplitter.CreateView(0,1,RUNTIME_CLASS(COriginImage),CSize(1,1),pContext);
19     m_mainSplitter.CreateView(0,2,RUNTIME_CLASS(CCalculateResult),CSize(1,1),pContext);
20 
21     return true;
22 }
View Code

  这时候,需要在设置了在CreateView后,使用m_wndSplitter.SetRowInfo(....)设置水平分割条的位置,通常可以onSize()函数中进行设置,以达到分割窗口能够根据父窗口的大小自动调整,代码如下:

技术分享
 1 void CMainFrame::OnSize(UINT nType, int cx, int cy)
 2 {
 3     CFrameWndEx::OnSize(nType, cx, cy);
 4 
 5     // TODO: 在此处添加消息处理程序代码
 6     CRect clientRect;
 7     GetClientRect(&clientRect);
 8 
 9     if(isSplitter)
10     {
11         m_mainSplitter.SetColumnInfo(0,clientRect.Width() * 0.15,10);
12         m_mainSplitter.SetColumnInfo(1,clientRect.Width() * 0.7,10);
13         m_leftSplitter.SetRowInfo(0,clientRect.Height() * 0.15,10);
14         m_mainSplitter.RecalcLayout();
15         m_leftSplitter.RecalcLayout();
16     }
17 }
View Code

参考网帖:http://bbs.csdn.net/topics/390478203?page=1

MFC中使用CSplitterWnd分割窗口后设置视图大小的问题

标签:

原文地址:http://www.cnblogs.com/liujinyao/p/4192405.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!