问题描述
为什么在 notepad.exe
或 wordpad.exe
或 run.exe
窗口内输入时鼠标光标消失?哪个功能/中断/等负责?例如,输入网络浏览器或 cmd.exe
不会导致光标消失。机器代码中的哪些 Win API 函数显示鼠标指针以及如何(包括软件和硬件)以及这种消失是如何低级执行的?
解决方法
在用户打字时隐藏鼠标指针可以由应用程序自愿实现。很少有应用程序这样做。
通常,您会通过处理 Win32 API 通知来实现它:
- 隐藏 WM_KEYDOWN 上的指针
- 在 WM_MOUSEMOVE 和许多其他事件(例如菜单和窗口相关事件)上显示指针。
此外,如果在鼠标指针选项(见下文)中选中键入时隐藏指针,应用程序应该只隐藏鼠标指针。
可以使用传递SPI_GETMOUSEVANISH(又名鼠标消失功能)的SystemParametersInfo() WIN32 API 函数查询此选项。