为什么在记事本 window 中键入时鼠标光标会消失,但在浏览器或 cmd 中却不会?哪个 Win API 函数显示它以及如何显示它?

Why does the mouse cursor disappear when typing inside a notepad window, but not in a browser or cmd? Which Win API functions display it and how?

为什么在 notepad.exewordpad.exerun.exe window 中键入时 鼠标光标消失 ?哪个 function/interrupt/etc 对此负责?例如,在 Web 浏览器中输入或 cmd.exe 不会导致光标消失。机器代码中的哪个 Win API 函数显示鼠标指针以及如何(包括软件和硬件)以及这种消失是如何在低级别执行的?

应用程序可以主动实现在用户键入时隐藏鼠标指针。很少有应用程序这样做。

通常,您将通过处理 Win32 API 通知来实现它:

  • 隐藏 WM_KEYDOWN
  • 上的指针
  • WM_MOUSEMOVE 上显示指针以及更多事件,例如菜单和 window 相关事件。

此外,只有在鼠标指针选项中选中键入时隐藏指针,应用程序才应隐藏鼠标指针(见下文)。

可以使用传递 SPI_GETMOUSEVANISHSystemParametersInfo() WIN32 API 函数查询此选项(又名 Mouse Vanish 功能).