delphi 如果获得窗口坐标?
下面的代码只可以获得Form的相对坐标,,如果移动出去form的范围坐标就变负数了。我要的是窗口坐标能随我鼠标动,这窗口坐标也跟着变。请高手指导下procedureTFo...
下面的代码只可以获得Form 的相对坐标,,如果移动出去form 的范围坐标就变负数了。
我要的是窗口坐标能随我鼠标动,这窗口坐标也跟着变。请高手指导下
procedure TForm1.Timer2Timer(Sender: TObject);
var
p:tpoint;
begin
getcursorpos(p);
p:=ScreenToClient(p);
label4.Caption:=format('x: %d, y: %d',[p.X,p.y]);
end;
我想要的是,我的鼠标无论移动到那个窗口,都能显示鼠标在该窗口的相对坐标,可我的代码就只能显示出 一个窗口的相对坐标,不论鼠标移动到那里都是第一个窗口的相对坐标。 展开
我要的是窗口坐标能随我鼠标动,这窗口坐标也跟着变。请高手指导下
procedure TForm1.Timer2Timer(Sender: TObject);
var
p:tpoint;
begin
getcursorpos(p);
p:=ScreenToClient(p);
label4.Caption:=format('x: %d, y: %d',[p.X,p.y]);
end;
我想要的是,我的鼠标无论移动到那个窗口,都能显示鼠标在该窗口的相对坐标,可我的代码就只能显示出 一个窗口的相对坐标,不论鼠标移动到那里都是第一个窗口的相对坐标。 展开
展开全部
你的意思是不是:只要鼠标动了,然后,窗体的坐标就是鼠标的坐标?也就是说,窗口跟着鼠标走?如果是那样的话,下面的这个程序就可以了……
procedure TForm1.Timer1Timer(Sender: TObject);
var
P: TPoint;
begin
GetCursorPos(P);
form1.Caption:= Format('X: %d, Y: %d',[P.X, P.Y]);
form1.left:=p.X;
form1.top:=p.Y;
form1.Show;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
var
P: TPoint;
begin
GetCursorPos(P);
form1.Caption:= Format('X: %d, Y: %d',[P.X, P.Y]);
form1.left:=p.X;
form1.top:=p.Y;
form1.Show;
end;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
楼上说的 能让窗体的左上角 和 鼠标重合 移动.
如果不让重合移动.还可以这样.
procedure TForm2.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if (oldx=MaxInt) or (oldy=MaxInt) then
begin
oldx:=x;
oldy:=Y;
Exit;
end;
Left:=Left + x - oldx;
Top:= Top + y - oldy;
oldx:=x;
oldy:=y;
end;
如果不让重合移动.还可以这样.
procedure TForm2.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if (oldx=MaxInt) or (oldy=MaxInt) then
begin
oldx:=x;
oldy:=Y;
Exit;
end;
Left:=Left + x - oldx;
Top:= Top + y - oldy;
oldx:=x;
oldy:=y;
end;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
procedure TForm1.Timer2Timer(Sender: TObject);
var
p: TPoint;
h: HWND;
begin
GetCursorPos(p);
h := WindowFromPoint(p);
Windows.ScreenToClient(h, p);
label4.Caption:=format('x: %d, y: %d',[p.X,p.y]);
end;
var
p: TPoint;
h: HWND;
begin
GetCursorPos(p);
h := WindowFromPoint(p);
Windows.ScreenToClient(h, p);
label4.Caption:=format('x: %d, y: %d',[p.X,p.y]);
end;
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询