Posted when a pointer makes contact over the non-client area of a window. The message targets the window over which the pointer makes contact. The pointer is implicitly captured to the window so that the window continues to receive input for the pointer until it breaks contact.

If a window has captured this pointer, this message is not posted. Instead, a WM_POINTERDOWN is posted to the window that has captured this pointer.

Important  Desktop apps should be DPI aware. If your app is not DPI aware, screen coordinates contained in pointer messages and related structures might appear inaccurate due to DPI virtualization. DPI virtualization provides automatic scaling support to applications that are not DPI aware and is active by default (users can turn it off). For more information, see Writing High-DPI Win32 Applications.

#define WM_NCPOINTERDOWN                 0x0242



Contains the pointer identifier and additional information. Use the following macros to retrieve this information.

GET_POINTERID_WPARAM(wParam): pointer identifier.

HIWORD(wParam): hit-test value returned from processing the WM_NCHITTEST message.


Contains the point location of the pointer.

Note  Because the pointer may make contact with the device over a non-trivial area, this point location may be a simplification of a more complex pointer area. Whenever possible, an application should use the complete pointer area information instead of the point location.

Use the following macros to retrieve the physical screen coordinates of the point.

Return value

If an application processes this message, it should return zero.

If the application does not process this message, it should call DefWindowProc.


If the application does not process this message, DefWindowProc may perform one or more system actions depending on the hit-test result included in the message. Typically, applications should not need to handle this message.


Minimum supported client

Windows 8 [desktop apps only]

Minimum supported server

Windows Server 2012 [desktop apps only]


Winuser.h (include Windows.h)

See also




Community Additions