视图用
CScrollView
打开一图象后,在上面选取一点.如果不拖动滑动条时选取的正确.
拖动滑动条后用鼠标选取的点的坐标默认是以客户区(0,0)为原点的,不是以图象的原点坐标为原点的,所以在计算时出现错误信息.
请问应如何消除?计算是在view类中计算的,
坐标转换应该在哪里进行?
还有拖动滑动条的多少是如何计算的???谢谢!!
CScrollView
打开一图象后,在上面选取一点.如果不拖动滑动条时选取的正确.
拖动滑动条后用鼠标选取的点的坐标默认是以客户区(0,0)为原点的,不是以图象的原点坐标为原点的,所以在计算时出现错误信息.
请问应如何消除?计算是在view类中计算的,
坐标转换应该在哪里进行?
还有拖动滑动条的多少是如何计算的???谢谢!!
------
DPtoLP()转换下就行了..
不需要添加OnVScroll()函数了吗?
在OnLButtonUp函数中用GetScrollPosition()转换坐标了加上原来的位置了,结果还是不对
打开一副图象,需要选取一矩形区域,
但是由于图象很大,在选取前必须滑动滑动条,使要选择的区域出现在客户区中
选取的不是点,是一个矩形现在OnLButtonDown()函数中找到开始点m_p1
在OnMouseMove()中移动鼠标到最后的点
在OnLButtonUp()中找到终点m_p2
但是经过滑动条滑动后,两个点默认的原点是客户区的左上点,不是图象的左上点VIEW 类是基于CScrollView
的
是这样解决的
在VIEW类中增加一个点成员变量PScroll,用来接受滑动条的变化,
在OnLButtonDown()函数中找到开始点m_p1,并增加PScroll = GetScrollPosition();
在OnMouseMove()中移动鼠标到最后的点
在OnLButtonUp()中找到终点m_p2,同时增加PScroll = GetScrollPosition();
保持原来的,在用到这两个点的函数中增加
m_p1+=PScroll;
m_p2+=PScroll;这样结果就对了,
不知道大家认为这样做对吗?