获取全局的鼠标形状

HCURSOR GetCurrentCursorHandle()
{
    POINT pt;
    HWND hWnd;
    DWORD dwThreadID, dwCurrentThreadID;
    HCURSOR hCursor = NULL;

    // Find out which window owns the cursor
    GetCursorPos(&pt);
    hWnd = WindowFromPoint(pt);

    // Get the thread ID for the cursor owner.
    dwThreadID = GetWindowThreadProcessId(hWnd, NULL);

    // Get the thread ID for the current thread
    dwCurrentThreadID = GetCurrentThreadId();

    // If the cursor owner is not us then we must attach to
    // the other thread in so that we can use GetCursor() to
    // return the correct hCursor
    if (dwCurrentThreadID != dwThreadID) {

        // Attach to the thread that owns the cursor
        if (AttachThreadInput(dwCurrentThreadID, dwThreadID, TRUE)) {

            // Get the handle to the cursor
            hCursor = GetCursor();

            // Detach from the thread that owns the cursor
            AttachThreadInput(dwCurrentThreadID, dwThreadID, FALSE);
        }
    } else
        hCursor = GetCursor();

    return hCursor;
}

画鼠标图

case WM_PAINT:
        {
            hdc = BeginPaint(hWnd, &ps);
            // TODO: 在此添加任意绘图代码...
            HICON icon = GetCurrentCursorHandle();
            //HICON icon = LoadCursor(NULL,IDC_HAND);
            DrawIcon(hdc,0,0,icon);

            EndPaint(hWnd, &ps);
            break;
        }
原文地址:https://www.cnblogs.com/wangjixianyun/p/3012145.html