不用发email,看看ClipCursor()吧,然后就……引用MSDN里一小片断:
ClipCursor
The ClipCursor function confines the cursor to a rectangular area on the screen. If a subsequent cursor position (set by the SetCursorPos function or the mouse) lies outside the rectangle, the system automatically adjusts the position to keep the cursor inside the rectangular area. BOOL ClipCursor(
CONST RECT *lpRect // pointer to structure with rectangle
);
Parameterslprc
Pointer to theRECT structure that contains the screen coordinates of the upper-left and lower-right corners of the confining rectangle. If this parameter is NULL, the cursor is free to move anywhere on the screen. Return Values
If the function succeeds, the return value is nonzero.If the function fails, the return value is zero. To get extended error information, callGetLastError. Res
The cursor is a shared resource. If an application confines the cursor, it must release the cursor by using ClipCursor before relinquishing control to another application. The calling process must have WINSTA_WRITEATTRIBUTES access to the window station.
ClipCursor
The ClipCursor function confines the cursor to a rectangular area on the screen. If a subsequent cursor position (set by the SetCursorPos function or the mouse) lies outside the rectangle, the system automatically adjusts the position to keep the cursor inside the rectangular area. BOOL ClipCursor(
CONST RECT *lpRect // pointer to structure with rectangle
);
Parameterslprc
Pointer to theRECT structure that contains the screen coordinates of the upper-left and lower-right corners of the confining rectangle. If this parameter is NULL, the cursor is free to move anywhere on the screen. Return Values
If the function succeeds, the return value is nonzero.If the function fails, the return value is zero. To get extended error information, callGetLastError. Res
The cursor is a shared resource. If an application confines the cursor, it must release the cursor by using ClipCursor before relinquishing control to another application. The calling process must have WINSTA_WRITEATTRIBUTES access to the window station.
clipP.Y = 0
dummy& = ClientToScreen(Me.hWnd, clipP)
'Set the clip rectangle
clipR.Top = pctScreen.Top + clipP.Y ' Top of pctScreen + top of form
clipR.Left = pctScreen.Left + clipP.X ' left of pctScreen + left of form, etc.
clipR.Right = pctScreen.Left + pctScreen.Width + clipP.X
clipR.Bottom = pctScreen.Top + pctScreen.Height + clipP.Y
dummy& = ClipCursor&(clipR) ' Clip the cursor to the clipR rectangle