||It has been suggested that this article be merged into Pointer (user interface). (Discuss) Proposed since March 2017.|
|A component of Microsoft Windows|
The wait cursor in Windows 7
Busy cursorHourglass cursor
|Included with||Windows 1.0 and later|
The Windows wait cursor (known as the hourglass cursor until Windows Vista) is a cursor that indicates that an application is busy performing an operation. It can be accompanied by an arrow if the operation is being performed in the background.
The wait cursor can display on programs using the Windows API.
Windows Vista introduced a new, animated wait cursor. The wait cursor in Windows 7 was almost identical. It is possible, however, to change the appearance of the cursor into the original hourglass cursor. On October 31, 2013, AppleInsider claimed that the macOS's counterpart, a "beach ball cursor", was more recognized than Windows Vista's wait cursor due to the cultural impact that occurred after it appeared on a popular magazine.
Windows 8 introduced a new flat wait cursor. The new cursor is light blue on dark blue and removes the fade and the particles from the animated part.
There are two uses for the wait cursor: short term and long term. The wait cursor is a shared resource in the system across applications and windows. By default, when the mouse cursor is in a window, the cursor shown is controlled by the window's registered window class and handling of
WM_SETCURSOR. Different scenarios can be used instead.
In Microsoft Foundation Class Library (MFC) the wait cursor can be controlled by
CWaitCursor. If a local instance is created, the wait cursor is reset when the instance goes out of scope. It is used primarily for short term wait cursors.
In Windows Forms, each Control instance has a Cursor property, which can be controlled by the application itself.
Control.Cursor is the cursor shown when the mouse is in the control's region;
System.Windows.Forms.Cursor.Current is the cursor shown when the mouse enters any window of the application.
For long term wait cursors, the
UseWaitCursor property can be set (either Control level or application level) in one occasion and be reset in the other.