VC++中,在基于CFormView的视窗里面添加TabControl控件,产生属性页以后,一般属性页并不能填满视窗并随视窗大小变化而自适应的改变,这就需要用到void CxxxView::OnSize(UINT nType, int cx, int cy)函数:
在 CxxxView类名上点击右键->Add Window Message Handle...->添加WM_SIZE消息映射函数,这样就继承了OnSize,然后在void CxxxView::OnSize(UINT nType, int cx, int cy)函数中再调整属性页大小:(其中,m_tabCtrl为与TabControl相关联的变量)
void CxxxView::OnSize(UINT nType, int cx, int cy)
{
CxxxView::OnSize(nType, cx, cy);
if(m_tabCtrl.m_hWnd == NULL)
return; // Return if window is not created yet.
RECT lpRect;
// Get size of dialog window.
GetClientRect(&lpRect);
// Adjust the rectangle to fit the tab control into the
// dialog's client rectangle.
m_tabCtrl.AdjustRect(FALSE, &lpRect);
// Move the tab control to the new position and size.
m_tabCtrl.MoveWindow(&lpRect, TRUE);
}
这样,属性页大小就能随视窗大小变化而自适应的变化了。