用CSplitterWnd拆分成三个窗口,如何让拆分后的窗体随着主窗体自动调整大小?

时间:2021-07-19 20:00:21
在MFC中,单文档,用CSplitterWnd拆分成三个视图窗口,现在的问题是当主体窗口放大至全屏时,三个视图窗口不按比例放大,如何按比例放大?另外我用了OnSize()方法,也没实现,请高手帮助解答一下,最好具体些,谢谢!

4 个解决方案

#1


就是在OnSize里面实现的。
用CSplitterWnd的SetRowInfo和SetColInfo来完成。
给你贴一段我的代码:

int i,j;
CRect rect;
GetClientRect(&rect);
j = rect.Width();
i = rect.Height();

m_wndSplitter1.SetRowInfo(0,i/3,10);
m_wndSplitter1.SetRowInfo(1,2*i/9,10);
m_wndSplitter1.SetRowInfo(2,4*i/9,10);
m_wndSplitter1.RecalcLayout();
m_wndSplitter2.SetColumnInfo(0,j/2,10);
m_wndSplitter2.SetColumnInfo(1,j/2,10);
m_wndSplitter2.RecalcLayout();

#2


请问在哪个类里的OnSize?

#3


当然事在mainfrm.cpp中了!

#4


当然事在mainfrm.cpp中了!

#1


就是在OnSize里面实现的。
用CSplitterWnd的SetRowInfo和SetColInfo来完成。
给你贴一段我的代码:

int i,j;
CRect rect;
GetClientRect(&rect);
j = rect.Width();
i = rect.Height();

m_wndSplitter1.SetRowInfo(0,i/3,10);
m_wndSplitter1.SetRowInfo(1,2*i/9,10);
m_wndSplitter1.SetRowInfo(2,4*i/9,10);
m_wndSplitter1.RecalcLayout();
m_wndSplitter2.SetColumnInfo(0,j/2,10);
m_wndSplitter2.SetColumnInfo(1,j/2,10);
m_wndSplitter2.RecalcLayout();

#2


请问在哪个类里的OnSize?

#3


当然事在mainfrm.cpp中了!

#4


当然事在mainfrm.cpp中了!