为啥在记事本窗口中输入时鼠标光标会消失,但在浏览器或 cmd 中没有?哪些 Win API 函数显示它以及如何显示它?
Posted
技术标签:
【中文标题】为啥在记事本窗口中输入时鼠标光标会消失,但在浏览器或 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?为什么在记事本窗口中输入时鼠标光标会消失,但在浏览器或 cmd 中没有?哪些 Win API 函数显示它以及如何显示它? 【发布时间】:2021-04-29 09:31:45 【问题描述】:为什么在notepad.exe
或wordpad.exe
或run.exe
窗口内输入时鼠标光标会消失?哪个功能/中断/等对此负责?例如,输入网络浏览器或cmd.exe
不会导致光标消失。机器码中哪些 Win API 函数显示鼠标指针以及如何(包括软件和硬件)以及这种消失是如何低级执行的?
【问题讨论】:
我不明白这与 Windows Sysinternals 有什么关系。请解释或从标题、文字和标签中删除。 见这里:superuser.com/questions/928839/… 【参考方案1】:在用户键入时隐藏鼠标指针可以由应用程序自愿实现。很少有应用程序这样做。
通常,您将通过处理 Win32 API 通知来实现它:
隐藏WM_KEYDOWN上的指针 在WM_MOUSEMOVE 上显示指针以及许多更多事件,例如菜单和窗口相关事件。此外,只有在鼠标指针选项中选中键入时隐藏指针时,应用程序才应隐藏鼠标指针(见下文)。
可以使用传递SPI_GETMOUSEVANISH(又名鼠标消失功能)的SystemParametersInfo()WIN32 API 函数查询此选项。
【讨论】:
这个操作是如何低级执行的,包括机器码和硬件? 要显示或隐藏鼠标指针,请致电ShowCurser。这是对动态链接的User32.dll
的函数调用。其余的我不熟悉。很可能留给显卡(分体或集成),如何显示指针。以上是关于为啥在记事本窗口中输入时鼠标光标会消失,但在浏览器或 cmd 中没有?哪些 Win API 函数显示它以及如何显示它?的主要内容,如果未能解决你的问题,请参考以下文章
为啥微信编辑时鼠标选中一个字,而且打字时会自动删除后面的字?
为啥某些 Flask 会话值在关闭浏览器窗口后会从会话中消失,但稍后会在没有我添加它们的情况下重新出现?