如何使鼠标光标指向一个窗口?

问题描述

有没有办法自动/认将鼠标光标设置为指向新创建的窗口(例如使用 CreateWindow 函数)?我知道对于键盘输入有一个 SetFocus() 函数,但还没有找到类似的用于鼠标的函数

解决方法

正如@IInspectable所说,以下是代码实现。

LRESULT CALLBACK WndProcNOP(HWND hwnd,UINT msg,WPARAM wParam,LPARAM lParam)
{
    switch (msg)
    {
    case WM_CREATE:
    {
        RECT rcClient;
        GetWindowRect(hwnd,&rcClient);
        int x = rcClient.left + (rcClient.right - rcClient.left) / 2;
        int y = rcClient.top + (rcClient.bottom - rcClient.top) / 2;
        SetCursorPos(x,y);
    }
        break;
    case WM_DESTROY:
        PostQuitMessage(0);
        break;
    default:
        return DefWindowProcW(hwnd,msg,wParam,lParam);
    }
    return 0;
}