CConferenceView是CView视图,CTextView 是基于CFormView类的视图,当改变分辨率或最小化时,CFormView视图会产生滚动条显示,如何让它不产生滚动条,而完全显示?代码如下:BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{ m_CreatedOK = m_wndSplitter1.CreateStatic(this, 2, 1);
if(m_CreatedOK){
m_CreatedOK = m_wndSplitter1.CreateView(1, 0, RUNTIME_CLASS( CTextView ),
CSize(0, 0), pContext);
if(m_CreatedOK){
m_CreatedOK = m_wndSplitter2.CreateStatic(&m_wndSplitter1, 1, 2,
WS_CHILD | WS_VISIBLE, m_wndSplitter1.IdFromRowCol(0, 0));
if(m_CreatedOK){
m_CreatedOK = m_wndSplitter2.CreateView(0, 0,
RUNTIME_CLASS(CToolView), CSize(60, 0), pContext);
if(m_CreatedOK){
m_CreatedOK = m_wndSplitter2.CreateView(0, 1,
RUNTIME_CLASS(CConferenceView), CSize(0, 0), pContext);
setLayout();//设置高度
}
}
}
}
m_wndSplitter2.SetActivePane(0,1,NULL); return m_CreatedOK ==0 ? false : true;
}
void CMainFrame::setLayout()
{
if(m_CreatedOK){
if(m_wndSplitter1.m_hWnd){ int cy0, cy1, cymin, cy;
m_wndSplitter1.GetRowInfo(0, cy0, cymin);
m_wndSplitter1.GetRowInfo(1, cy1, cymin);
cy = cy0 + cy1;
int minCy0 = (int)(cy * 0.72); if(cy0 != minCy0){
cy0 = minCy0;
m_wndSplitter1.SetRowInfo(0, cy0 , cymin);
}
m_wndSplitter1.RecalcLayout();
}
}
}
{ m_CreatedOK = m_wndSplitter1.CreateStatic(this, 2, 1);
if(m_CreatedOK){
m_CreatedOK = m_wndSplitter1.CreateView(1, 0, RUNTIME_CLASS( CTextView ),
CSize(0, 0), pContext);
if(m_CreatedOK){
m_CreatedOK = m_wndSplitter2.CreateStatic(&m_wndSplitter1, 1, 2,
WS_CHILD | WS_VISIBLE, m_wndSplitter1.IdFromRowCol(0, 0));
if(m_CreatedOK){
m_CreatedOK = m_wndSplitter2.CreateView(0, 0,
RUNTIME_CLASS(CToolView), CSize(60, 0), pContext);
if(m_CreatedOK){
m_CreatedOK = m_wndSplitter2.CreateView(0, 1,
RUNTIME_CLASS(CConferenceView), CSize(0, 0), pContext);
setLayout();//设置高度
}
}
}
}
m_wndSplitter2.SetActivePane(0,1,NULL); return m_CreatedOK ==0 ? false : true;
}
void CMainFrame::setLayout()
{
if(m_CreatedOK){
if(m_wndSplitter1.m_hWnd){ int cy0, cy1, cymin, cy;
m_wndSplitter1.GetRowInfo(0, cy0, cymin);
m_wndSplitter1.GetRowInfo(1, cy1, cymin);
cy = cy0 + cy1;
int minCy0 = (int)(cy * 0.72); if(cy0 != minCy0){
cy0 = minCy0;
m_wndSplitter1.SetRowInfo(0, cy0 , cymin);
}
m_wndSplitter1.RecalcLayout();
}
}
}
GetClientRect(&rect);
MoveWindow(&rect);
GetClientRect(&rect);//取得整个客户区大小 m_wndSplitter1.SetRowInfo(0, rect.Width()-300, 20);
m_wndSplitter1.SetRowInfo(1, 300, 300);