CreateCursor function (winuser.h)

Creates a monochrome cursor having the specified size, bit patterns, and hot spot.

To create a colored cursor at run time you can use the CreateIconIndirect function, which creates a cursor based on the content of an ICONINFO structure.

Syntax

HCURSOR CreateCursor(
  [in, optional] HINSTANCE  hInst,
  [in]           int        xHotSpot,
  [in]           int        yHotSpot,
  [in]           int        nWidth,
  [in]           int        nHeight,
  [in]           const VOID *pvANDPlane,
  [in]           const VOID *pvXORPlane
);

Parameters

[in, optional] hInst

Type: HINSTANCE

A handle to the current instance of the application creating the cursor.

[in] xHotSpot

Type: int

The horizontal position of the cursor's hot spot.

[in] yHotSpot

Type: int

The vertical position of the cursor's hot spot.

[in] nWidth

Type: int

The width of the cursor, in pixels.

[in] nHeight

Type: int

The height of the cursor, in pixels.

[in] pvANDPlane

Type: const VOID*

An array of bytes that contains the bit values for the AND mask of the cursor, as in a device-dependent monochrome bitmap.

[in] pvXORPlane

Type: const VOID*

An array of bytes that contains the bit values for the XOR mask of the cursor, as in a device-dependent monochrome bitmap.

Return value

Type: HCURSOR

If the function succeeds, the return value is a handle to the cursor.

If the function fails, the return value is NULL. To get extended error information, call GetLastError.

Remarks

The nWidth and nHeight parameters must specify a width and height that are supported by the current display driver, because the system cannot create cursors of other sizes. To determine the width and height supported by the display driver, use the GetSystemMetrics function, specifying the SM_CXCURSOR or SM_CYCURSOR value.

Before closing, an application must call the DestroyCursor function to free any system resources associated with the cursor.

DPI Virtualization

This API does not participate in DPI virtualization. The output returned is in terms of physical coordinates, and is not affected by the DPI of the calling thread. Note that the cursor created may still be scaled to match the DPI of any given window it is drawn into.

Examples

For an example, see Creating a Cursor.

Requirements

   
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

CreateIcon

CreateIconIndirect

Cursors

DestroyCursor

GetModuleHandle

GetSystemMetrics

Other Resources

Reference

SetCursor