Programming/Windows API
ClipCursor 함수는 Mouse Cursor를 움직일 수 있는 영역을 제한하는 함수 입니다.

Declare Function ClipCursor Lib "user32" Alias "ClipCursor" (ByRef lpRect As Rectangle) As Integer
▶VB.NET 선언

Dim m_point As Rectangle = New Rectangle(Left, Top, Width, Height)
ClipCursor(m_point)
▶VB.NET 호출

[DllImport("user32.dll")]
public static extern int ClipCursor(ref Rectangle lpRect);
▶C# 선언

Rectangle m_point = new Rectangle(Left, Top, Width, Height);
ClipCursor(ref m_point);
▶C# 호출

ClipCursor함수의 인수는 특정영역을 표시하는 Rectangle형식을 인수로 전달받습니다. Rectangle형식은 왼쪽(left), 위(top), 넓이(width), 높이(height)에 대한 값을 가지며 이 형식자체를 인수로 전달하면 지정한 영역안에서만 Mouse Cursor를 움직일 수 있게 됩니다.

참고로 ClipCursor 함수를 호출할때 Mouse Cursor가 해당 영역을 벗어나 있으면 강제로 지정한 영역안에 끌어들입니다. ClipCursor함수로 Mouse움직임을 제한한뒤에 다음과 같이 함수를 다시 호출하면 제한영역이 풀리게 됩니다.

ClipCursor(Nothing)
▶VB.NET

Rectangle m_point = new Rectangle(0, 0, 0, 0);
ClipCursor(ref m_point);
▶C#

ClipCursor함수는 실행에 실패할 경우 0을 반환합니다.
0 0