7.11. Using Windows Hooks to Manipulate the Mouse
Problem
Many new mice have more than just a left and right button. Nowadays mice come with several additional buttons and a mouse wheel. You need to allow your application to take advantage of these new mice features. Additionally, you might need to know where the current location of the mouse is on a particular window, whether it is on the client area of the window (where your menus, toolbars, and controls are placed in the window), the nonclient area of the window (window border, title bar, close button, etc.), or the x and y coordinates of the mouse pointer.
Solution
Use the mouse events that are built into the
System.Windows.Forms.Form class.
Discussion
There are seven
mouse events that exist in the
System.Windows.Forms.Form class. These are, in the
order in which they occur:
MouseEnterMouseMoveMouseHoverorMouseDownorMouseWheelMouseUp(ifMouseDownwas the previously raised event)MouseLeave
Most of these events accept a MouseEventArgs
object that contains all the information about the mouse when the
event is raised. The MouseEventArgs class contains
the following data:
Which button the user is acting on
The number of times the mouse button was clicked
The direction and speed of the mouse wheel
The x and y coordinate of the mouse pointer
Your code can make use of any one or more of these events on the
Form class along with the
MouseEventArgs object.
See Also
See Recipe 7.10; Subclassing & Hooking with Visual Basic by Stephen ...