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; }