Delphi 如何判断鼠标指针是否在窗口中

Delphi如何判断鼠标指针是否在窗口中... Delphi 如何判断鼠标指针是否在窗口中 展开
 我来答
kabrbu
2010-12-03 · TA获得超过705个赞
知道小有建树答主
回答量:599
采纳率:0%
帮助的人:457万
展开全部
您可以这样写:(D7下已经通过了)
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var
strpos:string; //定义整形变量
begin
strpos:=format('X=%3d, Y=%3d',[x,y]); //获取鼠标指针的当前坐标
statusbar1.panels[0].text:=strpos; //输出鼠标指针的当前坐标
Edit1.Text := intToStr(x);
Edit2.Text := intToStr(y);
end;

窗体unit1全部源码为:

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls;

type
TForm1 = class(TForm)
Edit1: TEdit;
StatusBar1: TStatusBar;
Edit2: TEdit;
Label1: TLabel;
Label2: TLabel;
procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
private

public

end;

var
Form1: TForm1;

implementation

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var
strpos:string; //定义整形变量
begin
strpos:=format('X=%3d, Y=%3d',[x,y]); //获取鼠标指针的当前坐标
statusbar1.panels[0].text:=strpos; //输出鼠标指针的当前坐标
Edit1.Text := intToStr(x);
Edit2.Text := intToStr(y);
end;

end.
------------------------------------------------
窗体上定义2个Edit组件,分别叫edit1和edit2,有定义一个statusbar组件叫statusbar1,对statusbar1进行编辑,起码有一个元素panels[0],其width=150,这些是基本条件,你早就知道了。
按照以上做法就可以在 edit1上显示x值,edit2上显示y值,在状态条上显示x和y值
-----------------------------------------------
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lake_cx
2010-12-04 · TA获得超过166个赞
知道小有建树答主
回答量:209
采纳率:0%
帮助的人:175万
展开全部
如何才认为是在窗口中?与窗体的焦点有关系么?还有窗体是本进程的窗体还是其他进程的窗体?
给你些提示把,使用API函数
GetCursorPos获取当前鼠标位置(屏幕坐标)
ScreenToClient从屏幕坐标转换为客户区坐标
GetWindowRect获取窗体大小
只要判断客户区坐标是不是都大于0,小于窗体长宽就行了。
该方法支持进程外窗体。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式