mfc子窗体OnSize后,最小化还原,控件全没了
一个程序中,创建了一个非模态对话框,为了更加方便,我设置了这个对话框能自由调整窗口大小,控件随之而变大
void Cdialogservice::OnSize(UINT nType, int cx, int cy)
{
CDialog::OnSize(nType, cx, cy);
static RECT LastWindowRect = {0, 0, 0, 0};//用来保存窗口上一次的大小
CWnd *hWin;//构造一个句柄
int ux = cx - LastWindowRect.right;
//求出窗口的水平变化量
int uy = cy - LastWindowRect.bottom;
//求出窗口的竖直变化量
if((hWin = GetDlgItem(IDC_LIST1)) != NULL) //IDC_LIST1为控件的ID号
{
RECT rect;
hWin->GetWindowRect(&rect);//获得控件的大小
ScreenToClient(&rect);//设备到客户
rect.right += ux;//
rect.bottom += uy;
hWin->MoveWindow(&rect);//改变控件大小
}
if( hWin = m_StatBar)
{
RECT rect;
hWin->GetWindowRect(&rect);//获得控件的大小
ScreenToClient(&rect);//设备到客户
rect.right += ux;//
rect.bottom += uy;
hWin->MoveWindow(&rect);//改变控件大小
}
LastWindowRect.right = cx;
LastWindowRect.bottom = cy;
}
这样设置了之后,一切正常,不过我把窗口最小化,然后还原,这样窗口上的控件都没了,一片空白,我把onsize去掉后,又能正常显示,这种问题是哪里的原因呢,因该怎样解决