這裏用到了幾個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;