CRect dlgRect;
GetParent()->GetWindowRect(&dlgRect);// 获取dlg相对屏幕的rect
CRect slidRect;
GetWindowRect(&slidRect);// 获取控件相对屏幕的rect
CRect slidSizeRect;
GetClientRect(&slidSizeRect);// 获取控件的尺寸
int nDeLeft = slidRect.left - dlgRect.left ;// 计算相对变化量
int nTop = (moveRect.top + moveRect.bottom) / 2 - 20;// 计算控件的高度中点作为button的Top
CRect rctMin(moveRect.left, nTop, moveRect.left + 40, nTop + 20); // 创建button的rect
GetParent()->GetWindowRect(&dlgRect);// 获取dlg相对屏幕的rect
CRect slidRect;
GetWindowRect(&slidRect);// 获取控件相对屏幕的rect
CRect slidSizeRect;
GetClientRect(&slidSizeRect);// 获取控件的尺寸
int nDeLeft = slidRect.left - dlgRect.left ;// 计算相对变化量
int nDeTop = slidRect.top - dlgRect.top ;// 计算相对变化量
CRect moveRect(nDeLeft, nDeTop, slidSizeRect.right + nDeLeft, slidSizeRect.bottom + nDeTop); // 计算控件相对dlg的位置int nTop = (moveRect.top + moveRect.bottom) / 2 - 20;// 计算控件的高度中点作为button的Top
CRect rctMin(moveRect.left, nTop, moveRect.left + 40, nTop + 20); // 创建button的rect
m_btnMin->MoveWindow(rctMin); // 移动button
// GetWindowRect()得到的居然都是相对屏幕分辨率的坐标,moveWindow()又是相对dlg左上角产生的坐标,难怪每次移动都移动到奇怪的位置