SetCursor function (winuser.h)

Sets the cursor shape.

Syntax

HCURSOR SetCursor(
  [in, optional] HCURSOR hCursor
);

Parameters

[in, optional] hCursor

Type: HCURSOR

A handle to the cursor.

The cursor must have been created by either the CreateCursor or the CreateIconIndirect function, or loaded by either the LoadCursor or the LoadImage function.

If this parameter is NULL, the cursor is removed from the screen.

Return value

Type: HCURSOR

The return value is the handle to the previous cursor, if there was one.

If there was no previous cursor, the return value is NULL.

Remarks

The cursor is set only if the new cursor is different from the previous cursor; otherwise, the function returns immediately.

The cursor is a shared resource. A window should set the cursor shape only when the cursor is in its client area or when the window is capturing mouse input. In systems without a mouse, the window should restore the previous cursor before the cursor leaves the client area or before it relinquishes control to another window.

If your application must set the cursor while it is in a window, make sure the class cursor for the specified window's class is set to NULL. If the class cursor is not NULL, the system restores the class cursor each time the mouse is moved.

The cursor is not shown on the screen if the internal cursor display count is less than zero. This occurs if the application uses the ShowCursor function to hide the cursor more times than to show the cursor.

Examples

For an example, see Displaying a Cursor.

Requirements

Requirement Value
Minimum supported client Windows 2000 Professional [desktop apps only]
Minimum supported server Windows 2000 Server [desktop apps only]
Target Platform Windows
Header winuser.h (include Windows.h)
Library User32.lib
DLL User32.dll

See also

Conceptual

Cursors

Creating a Cursor

CreateCursor

CreateIconIndirect

GetCursor

GetSystemMetrics

LoadCursor

LoadImage

Reference

SetCursorPos

ShowCursor