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

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

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_NCPOINTERUP               0x0243



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.


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.


Requirement Value
Minimum supported client
Windows 8 [desktop apps only]
Minimum supported server
Windows Server 2012 [desktop apps only]
Winuser.h (include Windows.h)

See also