マウスの動く範囲を制限するには

解決


クッキー  2004-04-12 07:48:39  No: 8316  IP: [192.*.*.*]

マウスの動く範囲を制限したいのですがどうすればいいですか
FormMouseMoveを使うと反応が遅いようです

編集    削除
jok  2004-04-12 08:38:02  No: 8317  IP: [192.*.*.*]

スクリーン座標を使って ClipCursor() という API でできます。

    { Private 宣言 }
  public
    Flag:Boolean;
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.FormClick(Sender: TObject);
var
  r:TRect;
  LeftTop,RightBottom:TPoint;
begin
  if Flag then
    ClipCursor(nil)
  else begin
    LeftTop := ClientToScreen(Point(0,0));
    RightBottom := ClientToScreen(Point(ClientWidth,ClientHeight));
    r := Rect(LeftTop.x,LeftTop.y,RightBottom.x,RightBottom.y);
    ClipCursor(@r);
  end;
  Flag := not Flag;
end;

このコードは、Form1 をクリックするとカーソルが Form1 のクライアント領域
から出られなくなります。もう一度クリックすると元の状態に戻ります。

編集    削除
クッキー  2004-04-13 06:19:21  No: 8318  IP: [192.*.*.*]

ありがとうございます
うまくできました

編集    削除