Доброе время суток!
Делаю масштабируемое диалоговое окно, меняю размеры всех элементов в зависимости от изменения размеров окна. (Событие WM_SIZE, обработчик OnSize в MFC), делаю так:
CWnd* graphFrame = (CWnd*)GetDlgItem(IDC_GRAPH_FRAME);
CWnd* graphFrame2 = (CWnd*)GetDlgItem(IDC_GRAPH_FRAME2);
graphFrame->GetWindowRect(lpGF1Rect);
graphFrame->SetWindowPos(NULL,10,(lpGF1Rect.bottom)+10,cx-10,30,SWP_NOZORDER);
якобы в этом месте graphFrame должен сместить левый верхний угол и поменять свои размеры согласно параметрам вызова SetWindowPos.

но происходит следующее:

если скажем lpGF1Rect.bottom был равен 255, то проедыдущий SetWindowPos должен сделать lpGF2Rect.top равным 265, но вызов метода:
graphFrame->GetWindowRect(lpGF2Rect);
даёт немного неожиданный результат: lpGF2Rect.top==398

Может я не понимаю смысла метода CWnd::SetWindowPos() ? Подскажите...