圆点在一个矩形区域内移动的问题
时间:2011-12-04
来源:互联网
我做了一个点在,让它在一定范围内移动,移动的时候没问题 但是当点移动到这个范围的边界上时,移动起来就不太平滑。这个肯定是约束条件有问题,我试了好多 都不太好使,请高数指点一下
代码如下:[code=C/C++][/code]
void COutput2::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CRect NewRect;//移动后得到的新矩形
CPoint OffSet;//计算移动的偏移量也就是看移动了多少
CRgn Move_Region;//设置可移动区域
Move_Region.CreateRectRgnIndirect(CRect(45,57,795,249));
if ((nFlags==MK_LBUTTON)&&(MouseDown_Flag==TRUE)&&(Move_Region.PtInRegion(point)))
{
OffSet=point-MousePose;//计算出鼠标移动的偏移量
NewRect=m_ellipsRect[Ellips_Flag]+(OffSet+CPoint(0,0));//得到移动后新的矩形
m_ellipsRect[Ellips_Flag]=NewRect; //更新原来矩形
MousePose=point; //记录当前的点值以计算再移动时的偏移量
InvalidateRect(CRect(30,4,820,296)); //刷新示波器显示部分
}
CDialog::OnMouseMove(nFlags, point);
}
代码如下:[code=C/C++][/code]
void COutput2::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CRect NewRect;//移动后得到的新矩形
CPoint OffSet;//计算移动的偏移量也就是看移动了多少
CRgn Move_Region;//设置可移动区域
Move_Region.CreateRectRgnIndirect(CRect(45,57,795,249));
if ((nFlags==MK_LBUTTON)&&(MouseDown_Flag==TRUE)&&(Move_Region.PtInRegion(point)))
{
OffSet=point-MousePose;//计算出鼠标移动的偏移量
NewRect=m_ellipsRect[Ellips_Flag]+(OffSet+CPoint(0,0));//得到移动后新的矩形
m_ellipsRect[Ellips_Flag]=NewRect; //更新原来矩形
MousePose=point; //记录当前的点值以计算再移动时的偏移量
InvalidateRect(CRect(30,4,820,296)); //刷新示波器显示部分
}
CDialog::OnMouseMove(nFlags, point);
}
作者: ganggangban 发布时间: 2011-12-04
谢楼主通知,但是俺没看太懂题意。
作者: jennyvenus 发布时间: 2011-12-04
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28