对话框上有两个控件 IDC_EDIT1,IDC_EDIT2,点击一个按钮执行如下代码RECT rec;
((CEdit*)GetDlgItem(IDC_EDIT1))->GetWindowRect(&rec);
((CEdit*)GetDlgItem(IDC_EDIT2))->MoveWindow(&rec);为什么第二个移不到第一个的位置呢?

解决方案 »

  1.   

    z-order问题吧, SetWindowPos(....)一下
      

  2.   

    RECT rec;
    ((CEdit*)GetDlgItem(IDC_EDIT1))->GetWindowRect(&rec);
    ScreenToClient(&rec);   //坐标转换一下
    ((CEdit*)GetDlgItem(IDC_EDIT2))->MoveWindow(&rec);
      

  3.   

    ((CEdit*)GetDlgItem(IDC_EDIT1))->GetClientRect(&rec);
    ((CEdit*)GetDlgItem(IDC_EDIT2))->MoveWindow(&rec);
      

  4.   

    Snow_Ice11111(雪上加冰--求职ing在厦门) 同意,
      

  5.   

    GetWindowRect(&rec);得到的是它自己的坐标系中的坐标(左上角永远是(0,0)),所以有两种办法:1.如Snow_Ice11111(雪上加冰--求职ing在厦门)所说:加一句ScreenToClient(&rec);   
    把它自己的坐标系换到客户区坐标系上.2.如syy64(太平洋)所说:直接用:GetClientRect(&rec);
    得到它在客户区的位置;