将鼠标锁定在一定范围如何将鼠标锁定在一定的范围内呢?
请在Form中放置二个 Button, 然後分别为这两个按钮定义OnClick响应事件如下:
// 限制
procedure TForm1.Button1Click(Sender: TObject);
var
rtButton2: TRect;
begin
rtButton2 := Button2.BoundsRect;
MapWindowPoints(handle, 0, rtButton2, 2); // 座标换算
ClipCursor(@rtButton2); // 限制鼠标移动区域
end;// 还原
procedure TForm1.Button2Click(Sender: TObject);
var
rtScreen: TRect;
begin
rtScreen := Rect(0, 0, Screen.Width, Screen.Height);
ClipCursor(@rtScreen);
end;

解决方案 »

  1.   

    试试在鼠标移出TImage时,隐藏鼠标,移入时显示
      

  2.   

    var
      rtImage: TRect;
    begin
      rtImage := image1.boundsRect;
      MapWindowPoints(handle,0,rtImage,2);
      ClipCursor(@rtImage);
    end;
      

  3.   

    var
        MyRgn:              HRGN;
    begin
        MyRgn:=CreateRectRgn(10,10,100,100);
        SelectClipRgn(Pcanvas.Handle,MyRgn);
    end;
    //解除
            SelectClipRgn(PCanvas.handle,0);
      

  4.   

    用Windows API 函数ClipCursor实现。函数原形如下:
    BOOL ClipCursor( CONST RECT *lpRect ) ;其中参数RECT为指向一个矩形区域的指针,坐标为屏幕坐标。如果设置为0,则鼠标可以在整个屏幕中自由移动。
      

  5.   

    var
        MyRgn:              HRGN;
    begin
        MyRgn:=CreateRectRgn(10,10,100,100);
        SelectClipRgn(Pcanvas.Handle,MyRgn);
    end;
    //解除
            SelectClipRgn(PCanvas.handle,0);
      

  6.   

    var
        MyRgn:              HRGN;
    begin
        MyRgn:=CreateRectRgn(10,10,100,100);
        SelectClipRgn(Pcanvas.Handle,MyRgn);
    end;
    //解除
            SelectClipRgn(PCanvas.handle,0);