Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
This section describes how the system provides mouse input to your application and how the application receives and processes that input.
Topic | Description |
---|---|
About Mouse Input |
This topic discusses mouse input. |
Using Mouse Input |
This section covers tasks associated with mouse input. |
Mouse Input Reference |
Name | Description |
---|---|
_TrackMouseEvent | Posts messages when the mouse pointer leaves a window or hovers over a window for a specified amount of time. This function calls TrackMouseEvent if it exists, otherwise it emulates it. |
BlockInput | Blocks keyboard and mouse input events from reaching applications. |
DragDetect | Captures the mouse and tracks its movement until the user releases the left button, presses the ESC key, or moves the mouse outside the drag rectangle around the specified point. The width and height of the drag rectangle are specified by the SM_CXDRAG and SM_CYDRAG values returned by the GetSystemMetrics function. |
EnableMouseInPointer | Enables the mouse to act as a pointing device. |
EnableWindow | Enables or disables mouse and keyboard input to the specified window or control. When input is disabled, the window does not receive input such as mouse clicks and key presses. When input is enabled, the window receives all input. |
GetCapture | Retrieves a handle to the window (if any) that has captured the mouse. Only one window at a time can capture the mouse; this window receives mouse input whether or not the cursor is within its borders. |
GetDoubleClickTime | Retrieves the current double-click time for the mouse. A double-click is a series of two clicks of the mouse button, the second occurring within a specified time after the first. The double-click time is the maximum number of milliseconds that may occur between the first and second click of a double-click. |
GetMouseMovePointsEx | Retrieves a history of up to 64 previous coordinates of the mouse or pen. |
IsWindowEnabled | Determines whether the specified window is enabled for mouse and keyboard input. |
ReleaseCapture | Releases the mouse capture from a window in the current thread and restores normal mouse input processing. A window that has captured the mouse receives all mouse input, regardless of the position of the cursor, except when a mouse button is clicked while the cursor hot spot is in the window of another thread. |
SendInput | Synthesizes keystrokes, mouse motions, and button clicks. |
SetCapture | Sets the mouse capture to the specified window belonging to the current thread. SetCapture captures mouse input either when the mouse is over the capturing window, or when the mouse button was pressed while the mouse was over the capturing window and the button is still down. Only one window at a time can capture the mouse. If the mouse cursor is over a window created by another thread, the system will direct mouse input to the specified window only if a mouse button is down. |
SetDoubleClickTime | Sets the double-click time for the mouse. A double-click is a series of two clicks of a mouse button, the second occurring within a specified time after the first. The double-click time is the maximum number of milliseconds that may occur between the first and second clicks of a double-click. |
SwapMouseButton | Reverses or restores the meaning of the left and right mouse buttons. |
TrackMouseEvent | Posts messages when the mouse pointer leaves a window or hovers over a window for a specified amount of time. |
The following function is obsolete.
Function | Description |
---|---|
mouse_event | Synthesizes mouse motion and button clicks. |
Name | Description |
---|---|
WM_APPCOMMAND | Notifies a window that the user generated an application command event, for example, by clicking an application command button using the mouse or typing an application command key on the keyboard. |
WM_CAPTURECHANGED | Sent to the window that is losing the mouse capture. |
WM_LBUTTONDBLCLK | Posted when the user double-clicks the left mouse button while the cursor is in the client area of a window. If the mouse is not captured, the message is posted to the window beneath the cursor. Otherwise, the message is posted to the window that has captured the mouse. |
WM_LBUTTONDOWN | Posted when the user presses the left mouse button while the cursor is in the client area of a window. If the mouse is not captured, the message is posted to the window beneath the cursor. Otherwise, the message is posted to the window that has captured the mouse. |
WM_LBUTTONUP | Posted when the user releases the left mouse button while the cursor is in the client area of a window. If the mouse is not captured, the message is posted to the window beneath the cursor. Otherwise, the message is posted to the window that has captured the mouse. |
WM_MBUTTONDBLCLK | Posted when the user double-clicks the middle mouse button while the cursor is in the client area of a window. If the mouse is not captured, the message is posted to the window beneath the cursor. Otherwise, the message is posted to the window that has captured the mouse. |
WM_MBUTTONDOWN | Posted when the user presses the middle mouse button while the cursor is in the client area of a window. If the mouse is not captured, the message is posted to the window beneath the cursor. Otherwise, the message is posted to the window that has captured the mouse. |
WM_MBUTTONUP | Posted when the user releases the middle mouse button while the cursor is in the client area of a window. If the mouse is not captured, the message is posted to the window beneath the cursor. Otherwise, the message is posted to the window that has captured the mouse. |
WM_MOUSEACTIVATE | Sent when the cursor is in an inactive window and the user presses a mouse button. The parent window receives this message only if the child window passes it to the DefWindowProc function. |
WM_MOUSEHOVER | Posted to a window when the cursor hovers over the client area of the window for the period of time specified in a prior call to TrackMouseEvent. |
WM_MOUSEHWHEEL | Sent to the focus window when the mouse's horizontal scroll wheel is tilted or rotated. TheDefWindowProcfunction propagates the message to the window's parent. There should be no internal forwarding of the message, because DefWindowProc propagates it up the parent chain until it finds a window that processes it. |
WM_MOUSELEAVE | Posted to a window when the cursor leaves the client area of the window specified in a prior call to TrackMouseEvent. |
WM_MOUSEMOVE | Posted to a window when the cursor moves. If the mouse is not captured, the message is posted to the window that contains the cursor. Otherwise, the message is posted to the window that has captured the mouse. |
WM_MOUSEWHEEL | Sent to the focus window when the mouse wheel is rotated. The DefWindowProc function propagates the message to the window's parent. There should be no internal forwarding of the message, because DefWindowProc propagates it up the parent chain until it finds a window that processes it. |
WM_NCHITTEST | Sent to a window in order to determine what part of the window corresponds to a particular screen coordinate. This can happen, for example, when the cursor moves, when a mouse button is pressed or released, or in response to a call to a function such as WindowFromPoint. If the mouse is not captured, the message is sent to the window beneath the cursor. Otherwise, the message is sent to the window that has captured the mouse. |
WM_NCLBUTTONDBLCLK | Posted when the user double-clicks the left mouse button while the cursor is within the nonclient area of a window. This message is posted to the window that contains the cursor. If a window has captured the mouse, this message is not posted. |
WM_NCLBUTTONDOWN | Posted when the user presses the left mouse button while the cursor is within the nonclient area of a window. This message is posted to the window that contains the cursor. If a window has captured the mouse, this message is not posted. |
WM_NCLBUTTONUP | Posted when the user releases the left mouse button while the cursor is within the nonclient area of a window. This message is posted to the window that contains the cursor. If a window has captured the mouse, this message is not posted. |
WM_NCMBUTTONDBLCLK | Posted when the user double-clicks the middle mouse button while the cursor is within the nonclient area of a window. This message is posted to the window that contains the cursor. If a window has captured the mouse, this message is not posted. |
WM_NCMBUTTONDOWN | Posted when the user presses the middle mouse button while the cursor is within the nonclient area of a window. This message is posted to the window that contains the cursor. If a window has captured the mouse, this message is not posted. |
WM_NCMBUTTONUP | Posted when the user releases the middle mouse button while the cursor is within the nonclient area of a window. This message is posted to the window that contains the cursor. If a window has captured the mouse, this message is not posted. |
WM_NCMOUSEHOVER | Posted to a window when the cursor hovers over the nonclient area of the window for the period of time specified in a prior call toTrackMouseEvent. |
WM_NCMOUSELEAVE | Posted to a window when the cursor leaves the nonclient area of the window specified in a prior call toTrackMouseEvent. |
WM_NCMOUSEMOVE | Posted to a window when the cursor is moved within the nonclient area of the window. This message is posted to the window that contains the cursor. If a window has captured the mouse, this message is not posted. |
WM_NCRBUTTONDBLCLK | Posted when the user double-clicks the right mouse button while the cursor is within the nonclient area of a window. This message is posted to the window that contains the cursor. If a window has captured the mouse, this message is not posted. |
WM_NCRBUTTONDOWN | Posted when the user presses the right mouse button while the cursor is within the nonclient area of a window. This message is posted to the window that contains the cursor. If a window has captured the mouse, this message is not posted. |
WM_NCRBUTTONUP | Posted when the user releases the right mouse button while the cursor is within the nonclient area of a window. This message is posted to the window that contains the cursor. If a window has captured the mouse, this message is not posted. |
WM_NCXBUTTONDBLCLK | Posted when the user double-clicks either XBUTTON1 or XBUTTON2 while the cursor is in the nonclient area of a window. This message is posted to the window that contains the cursor. If a window has captured the mouse, this message is not posted. |
WM_NCXBUTTONDOWN | Posted when the user presses either XBUTTON1 or XBUTTON2 while the cursor is in the nonclient area of a window. This message is posted to the window that contains the cursor. If a window has captured the mouse, this message is not posted. |
WM_NCXBUTTONUP | Posted when the user releases either XBUTTON1 or XBUTTON2 while the cursor is in the nonclient area of a window. This message is posted to the window that contains the cursor. If a window has captured the mouse, this message is not posted. |
WM_RBUTTONDBLCLK | Posted when the user double-clicks the right mouse button while the cursor is in the client area of a window. If the mouse is not captured, the message is posted to the window beneath the cursor. Otherwise, the message is posted to the window that has captured the mouse. |
WM_RBUTTONDOWN | Posted when the user presses the right mouse button while the cursor is in the client area of a window. If the mouse is not captured, the message is posted to the window beneath the cursor. Otherwise, the message is posted to the window that has captured the mouse. |
WM_RBUTTONUP | Posted when the user releases the right mouse button while the cursor is in the client area of a window. If the mouse is not captured, the message is posted to the window beneath the cursor. Otherwise, the message is posted to the window that has captured the mouse. |
WM_XBUTTONDBLCLK | Posted when the user double-clicks either XBUTTON1 or XBUTTON2 while the cursor is in the client area of a window. If the mouse is not captured, the message is posted to the window beneath the cursor. Otherwise, the message is posted to the window that has captured the mouse. |
WM_XBUTTONDOWN | Posted when the user presses either XBUTTON1 or XBUTTON2 while the cursor is in the client area of a window. If the mouse is not captured, the message is posted to the window beneath the cursor. Otherwise, the message is posted to the window that has captured the mouse. |
WM_XBUTTONUP | Posted when the user releases either XBUTTON1 or XBUTTON2 while the cursor is in the client area of a window. If the mouse is not captured, the message is posted to the window beneath the cursor. Otherwise, the message is posted to the window that has captured the mouse. |
Name | Description |
---|---|
HARDWAREINPUT | Contains information about a simulated message generated by an input device other than a keyboard or mouse. |
INPUT | Contains information used for synthesizing input events such as keystrokes, mouse movement, and mouse clicks. |
LASTINPUTINFO | Contains the time of the last input. |
MOUSEINPUT | Contains information about a simulated mouse event. |
MOUSEMOVEPOINT | Contains information about the mouse's location in screen coordinates. |
TRACKMOUSEEVENT | Used by the TrackMouseEvent function to track when the mouse pointer leaves a window or hovers over a window for a specified amount of time. |