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

解決


クッキー  2004-04-12 07:48:39  No: 8316

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


jok  2004-04-12 08:38:02  No: 8317

スクリーン座標を使って 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

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


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加