I am currently moving the dialog box controls when the dialog box changes as follows:
CRect listRect;
list->GetWindowRect(&listRect);
ScreenToClient(listRect);
CRect dialogRect;
GetWindowRect(&dialogRect);
ScreenToClient(dialogRect);
list->MoveWindow(listRect.left, listRect.top,
dialogRect.right - (2 * listRect.left), dialogRect.bottom - 100);
This works fine in Windows XP, but when I tried it in Windows Vista, positioning was disabled. I think it should be up to the large border and title dialogs in the Windows Vista dialog box, as well as the fact that it GetWindowRecthas the following entry in the documentation:
Dimensions are shown in screen coordinates relative to the upper left corner of the display screen. The sizes of the headers, borders, and scrollbars, if any, are included.
, , , ?