目前,我正在调整对话框控件在对话框大小调整时的位置,如下所示:
// Get the list control rect.
CRect listRect;
list->GetWindowRect(&listRect);
ScreenToClient(listRect);
// Get the dialog Rect.
CRect dialogRect;
GetWindowRect(&dialogRect);
ScreenToClient(dialogRect);
list->MoveWindow(listRect.left, listRect.top,
dialogRect.right - (2 * listRect.left), dialogRect.bottom - 100);
在Windows XP中,这个很好用,但是在Windows Vista中尝试时,定位偏移了。我认为这必须是由于Windows Vista对话框中较大的对话框边框和标题以及GetWindowRect在文档中具有以下条目的事实所致:
“尺寸以相对于显示屏左上角的屏幕坐标给出。如果存在标题、边框和滚动条,则包括它们的尺寸。”
那么我的问题是,在调整对话框大小时,如何重新定位对话框控件,以便它们在操作系统之间保持一致?谢谢