15,978
社区成员
发帖
与我相关
我的任务
分享
void CControlPos::MoveControls(void)
{
if (m_pParent)
{
for (int i = 0; i < m_awndControls.GetSize(); i++)
{
LPCONTROLDATA pstControl = ((LPCONTROLDATA)m_awndControls.GetAt(i));
CRect rcParentBounds;
CRect rcBounds;
CWnd* pControl = m_pParent->FromHandle(pstControl->hControl);
pControl->GetWindowRect(rcBounds);
m_pParent->GetClientRect(rcParentBounds);
//----计算控件的移动参数---------
int dis;
int screen_width=GetSystemMetrics(SM_CXSCREEN); //获得屏幕分辨率的宽度值
dis = rcBounds.bottom - rcBounds.top;
rcBounds.top -= 30;
rcBounds.top *= (screen_width/1024.0);
rcBounds.top += 30;
rcBounds.bottom = rcBounds.top + dis*screen_width/1024.0;
dis = rcBounds.right - rcBounds.left;
rcBounds.left *= (screen_width/1024.0);
rcBounds.right = rcBounds.left + dis*screen_width/1024.0;
//-------------------------------
m_pParent->ScreenToClient(rcBounds); //坐标转换
pControl->MoveWindow(rcBounds);
}
UpdateParentSize();
}
}