问题描述
有没有办法自动/默认将鼠标光标设置为指向新创建的窗口(例如使用 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;
}