The WM_SETCURSOR message is sent to a window if the mouse causes the cursor to move within a window and mouse input is not captured.
WM_SETCURSOR
hwnd = (HWND) wParam; // handle of window with cursor
nHittest = LOWORD(lParam); // hit-test code
wMouseMsg = HIWORD(lParam); // mouse-message identifier
Parameters
hwnd
Value of wParam. Identifies the window that contains the cursor.
nHittest
Value of the low-order word of lParam. Specifies the hit-test code.
wMouseMsg
Value of the high-order word of lParam. Specifies the identifier of the mouse message.
Default Action
The DefWindowProc function passes the WM_SETCURSOR message to a parent window before processing. If the parent window returns TRUE, further processing is halted. Passing the message to a window's parent window gives the parent window control over the cursor's setting in a child window. The DefWindowProc function also uses this message to set the cursor to an arrow if it is not in the client area, or to the registered class cursor if it is in the client area. If the low-order word of the lParam parameter is HTERROR and the high-order word of lParam specifies that one of the mouse buttons is pressed, DefWindowProc calls the MessageBeep function.
Remarks
The high-order word of lParam is zero when the window enters menu mode.
See Also