マウスの動く範囲を制限したいのですがどうすればいいですか
FormMouseMoveを使うと反応が遅いようです
スクリーン座標を使って 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 のクライアント領域
から出られなくなります。もう一度クリックすると元の状態に戻ります。
ありがとうございます
うまくできました
ツイート | ![]() |