求教关于屏幕坐标如何转换为IMAGE中的坐标(给100分)(100分)

  • 主题发起人 主题发起人 夜幕下的蝙蝠
  • 开始时间 开始时间

夜幕下的蝙蝠

Unregistered / Unconfirmed
GUEST, unregistred user!
问题:
使用IMAGE装载一幅地图后,使用MOUSE点击地图,需要获取点击在地图上的那个点的坐标值。设定IMAGE左上角为坐标原点(0,0)。需要考虑地图原图、放大和缩小三种情况。
请各位不吝赐教。
 
Image有个ClientOrigin属性 下面有.X .Y 这个是这个控件在左上角在屏幕上的坐标。。
把这个坐标和当前屏幕鼠标坐标减一下就行了。。

还有 OnMouseMove下的那个X,Y不是以Image左上角为原点么???
 
var
Pos:TPoint;
begin
GetCursor(Pos);//获取屏幕坐标
Pos:= Image1.ScreenToClient(Pos); //转换为Image内部坐标
end;
 
修改:‘
GetCursorPos(Pos)
 
可是,如果将图象放大了,IMAGE中相应坐标下的地理信息就与原来的对不上了,这怎么办?显示器的大小对使用IMAGE中相应坐标判断地理位置是不是也有影响?请赐教。
 
goeasy:
通过
GetCursorPos(Pos);
Pos:= Image1.ScreenToClient(Pos);
取出的坐标值还是屏幕坐。因为ScreenToClient取的是屏幕坐标值,能否给个转换函数?
 
后退
顶部