void CMobileTISDlg::OnSize(UINT nType, int cx, int cy)
{
CDialog::OnSize(nType, cx, cy);
if(Flag)
{
CRect R = CRect(0,0,0,0);
GetWindowRect(&R);
ScreenToClient(&R);
LONG right = R.right - MinSize.right;// СRect MinSize заполняется в OnInitDialog и содержит размеры главного окна при старте программы
LONG top = R.top - MinSize.top;
int nCount = ResData.size();
for(int i=0;i<nCount;i++)
{
GetDlgItem(ResData.nID)->MoveWindow(ResData.aRect.left+right,
ResData.aRect.top+top,
ResData.aRect.Width(),
ResData.aRect.Height());
}
}
}
OnSize() проблема в коде для ресайза элементов диалога
Получил такой код:
Код:
ResData это вектор, содержащий структуры вида
Код:
struct ResizeStruct
{
CRect aRect;//прямоугольник для кнопки
UINT nID;//идентификатор кнопки
};
{
CRect aRect;//прямоугольник для кнопки
UINT nID;//идентификатор кнопки
};
заполнение структуры происходит при вызове функции
Код:
void CMobileTISDlg::SetResData(UINT nID)
{
ResizeStruct Res;
Res.aRect = CRect(0,0,0,0);
GetDlgItem(nID)->GetClientRect(&Res.aRect);
Res.nID = nID;
ResData.push_back(Res);
}
{
ResizeStruct Res;
Res.aRect = CRect(0,0,0,0);
GetDlgItem(nID)->GetClientRect(&Res.aRect);
Res.nID = nID;
ResData.push_back(Res);
}
Проблема в том, что почему то при тестировании программы кнопки вместо того, чтобы вести себя, как описано выше, сбиваются в одну кучу в левом краю программы. В чем моя ошибка?