即使光标位于表单之外,是否可以更改光标?
我通过使用 Win32 API 使用 MouseHook 来捕获光标在窗体外时的位置。但是,我无法更改光标...
程序决定光标应该是什么样子。大多数窗口要求默认箭头。但是,比如说,一个文本框控件要求一个 I-Beam。超链接控件请求手。等等。如果您将鼠标悬停在可调整大小窗口的窗口边缘,则程序会要求调整大小的光标之一。或者一个程序停止做某事一段时间并要求沙漏光标。等等。
因此,更换光标充满了麻烦,您无法为另一个您一无所知的程序做出正确的光标选择。
您可以从技术上调用 SetSystemCursor() 来替换系统光标之一。但这也很麻烦,当你的程序被炸毁时,你将无法正确恢复它。需要重新启动才能解决问题。对于有视觉障碍的用户也非常不利,您将用一个小光标替换她选择的超大光标。
这需要是用户选择,他们去控制面板+鼠标来选择光标。
也许您应该尝试事件 MouseEnter 和 MouseLeave