Displaying a Cursor
Windows automatically displays the class cursor (the cursor associated with
the window to which the cursor is pointing). You can assign a class cursor while
registering a window class. The following example illustrates this by assigning
a cursor handle to the
hCursor member of the
WNDCLASS structure identified by the
wc parameter.
WNDCLASS wc;
// Fill the window class structure with parameters that
// describe the main window.
wc.style = NULL; // class style(s)
wc.lpfnWndProc = (WNDPROC) MainWndProc; // window procedure
wc.cbClsExtra = 0; // no per-class extra data
wc.cbWndExtra = 0; // no per-window extra data
wc.hInstance = hinst; // app that owns the class
wc.hIcon = LoadIcon(NULL, IDI_APPLICATION); // class icon
wc.hCursor = LoadCursor(hinst, MAKEINTRESOURCE(230)); // class cursor
wc.hbrBackground = GetStockObject(WHITE_BRUSH); // class background
wc.lpszMenuName = "GenericMenu"; // class menu
wc.lpszClassName = "GenericWClass" // class name
// Register the window class.
return RegisterClass(&wc);
When the window class is registered, the cursor identified by 230 in the
application's resource-definition file will be the default cursor for all windows
based on the class.
Your application can change the design of the cursor by using the
SetCursor function and specifying a different cursor handle. However, when the cursor
moves, Windows redraws the class cursor at the new location. To prevent the
class cursor from being redrawn, you must process the
WM_SETCURSOR message. Each time the cursor moves and mouse input is not captured, Windows
sends this message to the window in which the cursor is moving.
You can specify different cursors for different conditions while processing
WM_SETCURSOR. For example, the following example shows how to display the
hCurs3 cursor whenever the cursor moves over the icon of a minimized application.
case WM_SETCURSOR:
// If the window is minimized, draw the hCurs3 cursor.
// If the window is not minimized, draw the default
// cursor (class cursor).
if (IsIconic(hwnd))
{
SetCursor(hCurs3);
break;
}
When the window is not minimized, Windows displays the class cursor.
You can replace a class cursor by using the
SetClassLong function. This function changes the default window settings for all windows
of a given class. The following example replaces the existing class cursor with
the
hCurs2 cursor.
// Change the cursor for window class represented by hwnd.
SetClassLong(hwnd, // window handle
GCL_HCURSOR, // change cursor
(LONG) hCurs2); // new cursor
For more information, see
Window Classes and
Mouse Input.
- Software for developers
-
Delphi Components
.Net Components
Software for Android Developers
- More information resources
-
MegaDetailed.Net
Unix Manual Pages
Delphi Examples
- Databases for Amazon shops developers
-
Amazon Categories Database
Browse Nodes Database