求算,画布坐标在父窗的坐标(100分)

  • 主题发起人 主题发起人 sunjet
  • 开始时间 开始时间
S

sunjet

Unregistered / Unconfirmed
GUEST, unregistred user!
在一有多控件窗体下,有一Timage,求算,画布坐标在父窗的坐标,或把鼠标的X.Y转换成该画布的位置
 
Image1.ClientToParent(...)
Image1.ClientToScreen(...)

Image1.ParentToClient(...)
Image1.ScreenToClient(...)
 
没看明白你的问题
 
这个我知道,但还是不行[:)]是这样的,Image1导入的图像实际大小比Image1小一些,所以还要换成图像的画布的坐标才行,而每一次导入不同大小的图,图像实际大小是动态的
 
如果 Image.Stretch=False Image.Canvas上的坐标就是对应于Image上的坐标
如果 Image.Stretch=True 那么换算一下就可以了,比如 Canvas 上的 (10,10),那么在Image上应该是 (10 * Image.Picture.Bitmap.Width div Image.Width, 10 * Image.Picture.Bitmap.Height div Image.Height);
 
to :pihome
不完全正确,因为图像并没有变大变小,不是缩放了大小,而是IMAGE1调整了大小,改变了画布在IMAGE1的起点位置.
不过这个启发了我,
mx:=(Image1.Width -Image1.Bitmap.Width) div 2;
my:=(Image1.Height-Image1.Bitmap.Height) div 2;
Canvas的坐标为(x-mx,y-my);

 
接受答案了.
 

Similar threads

D
回复
0
查看
850
DelphiTeacher的专栏
D
D
回复
0
查看
861
DelphiTeacher的专栏
D
D
回复
0
查看
689
DelphiTeacher的专栏
D
后退
顶部