15,980
社区成员




//Rect.SetRect(TLPoint, BRPoint);
//GetDlgItem(nID)->MoveWindow(Rect, TRUE);
CWnd *pWnd;
pWnd = GetDlgItem(nID);//获取控件指针,IDC_BUTTON1为控件ID号
pWnd->SetWindowPos(NULL, TLPoint.x, TLPoint.y, 0, 0, SWP_NOZORDER | SWP_NOSIZE);
CRect rect;
int rx, ry;
GetParent()->GetClientRect(&m_rectdlg);//父窗口客户区大小
GetParent()->GetDlgItem(AFX_IDW_TOOLBAR)->GetWindowRect(m_recttoolbar);//菜单栏屏幕坐标
ScreenToClient(m_recttoolbar);//转换为客户坐标
GetWindowRect(&rect);//本子窗口屏幕坐标
rx = rect.Width();//获取子对话框高度与宽度
ry = rect.Height();
//父亲窗口客户区宽度(高度) / 子窗口客户区宽度(高度)
m_Multiple_width = float(m_rectdlg.Width()) / float(rx);
//高度需考虑菜单栏和状态栏
m_Mutiple_heith = float(m_rectdlg.Height() - m_recttoolbar.Height() - 20) / float(ry-20);
//添加onSize函数改变控件大小和位置
CRect Rect;
GetDlgItem(nID)->GetWindowRect(Rect);
ScreenToClient(Rect);
//计算控件左上角点
CPoint OldTLPoint, TLPoint;
OldTLPoint = Rect.TopLeft();
TLPoint.x = long(OldTLPoint.x * m_Multiple_width);
TLPoint.y = long(OldTLPoint.y * m_Mutiple_heith);
////计算控件右下角点
CPoint OldBRPoint, BRPoint;
OldBRPoint = Rect.BottomRight();
BRPoint.x = long(OldBRPoint.x * m_Multiple_width);
BRPoint.y = long(OldBRPoint.y * m_Mutiple_heith);
Rect.SetRect(TLPoint, BRPoint);
GetDlgItem(nID)->MoveWindow(Rect, TRUE);