Q&A

  • 실행중인 창이외의 영역에서 마우스 금지?
현재 실행중인 창에서만 마우스 사용이 가능하고

창이외의 모든 영역에서는 마우스 사용을 금지시키고 싶습니다

그러니까 다시 말하면 마우스 포인터가 창 밖으로 이동하지 못하게 하고 싶습니다

현재창에서만 움직이도록...........

방법 좀 알려주세요

제가 워낙 허접이니 자세히 좀.......*^^* 부탁드립니다

1  COMMENTS
  • Profile
    stoney 2001.10.09 09:25
    마우스의 이동범위 제한하기

    unit Unit1;



    interface



    uses

    Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

    StdCtrls;



    type

    TForm1 = class(TForm)

    Button1: TButton;

    procedure FormActivate(Sender: TObject);

    procedure Button1Click(Sender: TObject);

    private

    { Private declarations }

    public

    { Public declarations }

    end;



    var

    Form1: TForm1;



    implementation

    {$R *.DFM}



    procedure TForm1.FormActivate(Sender: TObject);

    var

    R : TRect;

    begin

    Button1.Left := Self.Width div 2 - Button1.Width div 2;

    Button1.Top := Self.Height div 2 - Button1.Height div 2;



    // BoundsRect는 주어진 콘트롤의 좌표를 얻는 간편한 방법으로

    // 아래 문장은 다음 네줄의 문장과 같습니다

    // R.Left := Self.Left;

    // R.Top := Self.Top;

    // R.Right := Self.Left + Self.Width;

    // R.Bottom := Self.Top + Self.Height;

    R := Self.BoundsRect;



    // 주어진 영역(R)에서 Width와 Height를 각각 30씩 감소

    InflateRect(R, -30, -30);



    // ClipCursor API는 주어진 화면영역(R)으로만 마우스의 이동을 제한합니다

    ClipCursor(@R);

    end;



    procedure TForm1.Button1Click(Sender: TObject);

    begin

    // 마우스 이동영역의 제한을 해제(꼭! 해제하세요)

    ClipCursor(Nil);

    Close;

    end;



    end.





    허접 wrote:

    > 현재 실행중인 창에서만 마우스 사용이 가능하고

    > 창이외의 모든 영역에서는 마우스 사용을 금지시키고 싶습니다

    > 그러니까 다시 말하면 마우스 포인터가 창 밖으로 이동하지 못하게 하고 싶습니다

    > 현재창에서만 움직이도록...........

    > 방법 좀 알려주세요

    > 제가 워낙 허접이니 자세히 좀.......*^^* 부탁드립니다