如现在位置为:CPoint(30,21)
那如何动画移动到CPoint(620,870)
呢?要求水平坐标与纵坐标同步移动,不要先移动X到指定位置,再移动Y的值 !
那如何动画移动到CPoint(620,870)
呢?要求水平坐标与纵坐标同步移动,不要先移动X到指定位置,再移动Y的值 !
解决方案 »
- 关于局域网里面搜索设备
- 进制转换
- 广西梧州幼儿园校车事故死者为留守儿童--为什么受伤的总是他们?!
- activex中不能创建activex吗?
- CFileDialog打开文件提示异常后如何断开同文件的联系
- 请教:关于安装 VC6.0时出现的问题,请指教
- 请问:如何固定VIEW中的属性页不能拖动。
- ===做了一个托盘小程序,为什么我先在我自己的托盘右击菜单,随后在点击其他区域,可刚才的菜单还在,为什么呢?===
- 在COM(ATL)编程中,在接口添加属性时,怎么样能改变里边的默认参数!!!
- VC如何改变Excel的列宽?
- VS2005连接错误!
- 在已经加载bmp图片的PICTURE控件上画圆,为何圆显示不出来?
就是用定时器不停的movewindow
那如何动画移动到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);
}
上面是伪代码,仅供参考。
y = 21 + 849 * 7 * i / 590;
看来,不debug。写伪代码真是容易出错啊。