控件为什么不随窗口大小改变
SDI窗体,拆分为左右两个视图,右侧为TabCtrl,我想让它随窗体大小改变
现在的问题是,拖动改变窗口或者拖动分割栏的时候,TabCtrl大小随之改变,但是点击最大化的时候却不改变
请问要怎样修改?
这是代码:
void CHNTSView::OnSize(UINT nType, int cx, int cy) //CHNTS是主程序
{
if(nType!=SIZE_MINIMIZED && cx>0 && cy>0)
RecalcLayout();
CView::OnSize(nType, cx, cy);
// TODO: Add your message handler code here
}
//当此类改变大小时调用此函数
void CHNTSView::RecalcLayout()
{
CWnd * pWnd = (CWnd *) GetActiveView();
HWND hWnd =this->GetSafeHwnd();
CRect rect;
HDC hDC;
hDC=::GetWindowDC(hWnd);
CDC * pDC =new CDC;
pDC->Attach(hDC);
pDC->GetClipBox(&rect);
m_TabCtrl.RecalcLayout(rect,pWnd);//m_TabCtrl的定义:CViewTabCtrl m_TabCtrl;
delete pDC;
}
//当标签控件所在的视图改变大小时调用此函数
void CViewTabCtrl::RecalcLayout(CRect &rect, CWnd *wnd)
{
SetWindowPos(NULL,rect.left ,rect.top ,rect.right -rect.left ,
rect.bottom -rect.top ,SWP_NOZORDER);
AdjustRect(false,&rect);
wnd->SetWindowPos(NULL,rect.left ,rect.top ,rect.right -rect.left ,
rect.top -rect.bottom ,SWP_SHOWWINDOW);
}