因为在做上位机,需要MFC中的控件位置随窗体大小而改变,以下是代码:
首先初始化CRect m_rect,该成员变量用来记录窗体的当前大小。
void CTEST4View::OnSize(UINT nType, int cx, int cy)
{
CFormView::OnSize(nType, cx, cy);
CWnd *pWnd=NULL;
this->GetWindowRect(&m_rect);//获取当前窗体的坐标
if(nType==1) return;//<span style="color: rgb(70, 70, 70); line-height: 26px;"><span style="font-family:SimSun;font-size:10px;">这一句必须添加,否则最小化恢复的时候会出错。</span></span>
pWnd = GetDlgItem(IDC_BUTTON1); //获取控件句柄
if(pWnd)
{
CRect rect; //获取控件变化前的大小
pWnd->GetWindowRect(&rect); //控件在窗口坐标系下的位置
ScreenToClient(&rect); //将窗口坐标系下的位置转换为控件坐标系下的位置
int cwidth =0;
int cheight = 0;
cwidth =rec