如现在位置为:CPoint(30,21)
那如何动画移动到CPoint(620,870)
呢?要求水平坐标与纵坐标同步移动,不要先移动X到指定位置,再移动Y的值 !

解决方案 »

  1.   

    同意
    就是用定时器不停的movewindow
      

  2.   

    如现在位置为:CPoint(30,21)
    那如何动画移动到CPoint(620,870)x = 620 -30 = 590;
    y = 870 - 21 = 849;x轴移的少,Y轴移的多,
    所以,x轴移动一个像素,y轴要移动“849 / 590”个像素。不建议你一个像素一个像素的移,因为849/590除不尽,在电脑上849/590,值是1,体现不了等比较移动,在移动中,会产生跳跃的感觉,所以建议你x轴7个像素为单位移动。因为849 * 7 / 590的值为10.07,接近一个整数。for (int i = 0; ; ++i)
    {
        x = 30 + 7 * i;
       if (x > 620)
            break;
       y = 21 + 849 * 7 / 590;
       if (y > 870)
            break;   SetWindowPos(..., x, y, SWP_NOSIZE);
    }
    上面是伪代码,仅供参考。
      

  3.   

    又错了。伪代码中,y应该等于:
    y = 21 + 849 * 7 * i / 590;
    看来,不debug。写伪代码真是容易出错啊。