这里用到了几个API函数
1、CreateRectRgn:
2、GetWindowRgn:
函数GetWindowRgn声明如下:
int GetWindowRgn(HWND hWnd, HRGN hRgn);
hwnd 表示需要获取的窗口的Handle;
hRgn 就是上一个API的返回值。代表区域。
3、GetCursorPos:
函数 GetCursorPos 声明如下:
BOOL GetCursorPos(LPPOlNT IpPoint);
IpPoint :POINT结构指针,该结构接收光标的屏幕坐标。
4、PtInRegion:
函数 PtInRegion 声明如下:
BOOL PtInRegion(HRGN RGN , INT X, INt Y);
RGN :表示要探查的区域
X,Y分别表示当前鼠标的坐标
该函数判断光标是否在指定的区域内。
不多说了上代码:
procedure TForm1.Timer1Timer(Sender: TObject);
var
r:integer;
hr:HRGN;
p:TPoint;
begin
hr := CreateRectRgn(0,0,0,0);
r := GetWindowRgn(Handle ,hr);
GetCursorPos(p);
if PtInRegion(hr,p.x,p.y) then
Label1.Caption :='鼠标进入'
else
Label1.Caption :='鼠标离开';
DeleteObject(hr);
end;