关于鼠标(100分)

  • 主题发起人 主题发起人 ma-liang
  • 开始时间 开始时间
M

ma-liang

Unregistered / Unconfirmed
GUEST, unregistred user!
单击滑鼠左键后,如何获得滑鼠在客户区内的坐标
 

onclick 事件中有鼠标的坐标 x,y 是想对于sender 的客户区.
如果要取得屏幕坐标,用clienttoscreen 函数转换.
 
use getcursorpos
 
??
procedure Tform.FormMouseDown(Sender: TObject;
Button: TMouseButton;
Shift: TShiftState;
X, Y: Integer);
begin
if Button=mbLeft then
begin
参数X,Y客户区内的坐标
end;
end;

这样得到全局的坐标
var point :Tpoint;
GetCursorPos(Point);
point.x point.y 就是全局坐标
 
100分:-( 来晚了:-(
先用getcursorpos得到cursor的绝对坐标, 然后用windowfrompoint得到窗口的
handle, 然后再用getwindowrect得到left/top值, 最后用getcursorpos得到的
x/y去减left/top就可以了:-)
 
接受答案了.
 
后退
顶部