主页
手机版
扫描查看手机站
所在位置:首页 → 教程资讯 → 如何操作Windows系统光标:隐藏和显示

如何操作Windows系统光标:隐藏和显示

发布: 更新时间:2024-10-23 09:49:43

本文将介绍如何在Windows系统中操作光标。通常情况下,我们只能在当前窗体或控件范围内设置/隐藏光标,无法全局操作Windows系统的光标。但当我们接到需要隐藏Windows全局鼠标光标的需求时,以下将详细介绍如何操作。

在开始具体操作前,先了解系统鼠标光标。在鼠标属性-自定义列表中可以看到一共有13种类型,对应13种工作状态。对应的Windows.Input.CursorType枚举为:

操作系统提供了一组预定义的光标,如箭头、手形、沙漏等,位于 C:\Windows\Cursors目录下。

在光标显示逻辑方面:

  • 全局光标设置:在桌面或非控件区域,使用默认系统光标。
  • 窗口控件的设置:每个窗口控件可以设置自己的光标类型。当鼠标移动到该控件上时,将自动切换到该设置的光标。如果未设置则显示系统光标。
  • 当鼠标移动、点击或执行其他操作时,系统会检测并相应更新光标形状。应用程序也可以改变拖放等操作的光标。

对于当前鼠标状态的获取需求,可以通过GetCursorInfo获取当前鼠标光标id以及句柄。

需要隐藏系统光标时,可以通过创建一个空白光标来实现。可以按照以下链接中的步骤制作blank.cur文件,并使用该文件隐藏系统光标:
自己动手制作 Windows 鼠标光标文件(.cur格式)

恢复系统光标的显示,只需将之前的光标Handle设置回去即可。

以上是实现了当前光标的替换。然而,上文介绍了Windows系统中有13种光标状态,会根据应用程序状态进行切换,因此我们还需要处理其他光标状态。

针对13种光标都替换为空白光标,13种光标CursorId值在setSystemCursor文档有说明。

在运行验证过程中,我们可以在系统桌面、应用窗体(如VisualStudio)以及网页等光标编辑状态下成功隐藏光标。

还原光标状态时,我们需要用到User32及参数类。

需要注意的是,系统光标修改需要谨慎处理,光标一旦修改后,人工操作不太容易恢复。因此,在应用程序退出、崩溃等情况下,需要做好光标恢复操作。

以上demo代码见:
HideSystemCursorDemo on GitHub

参考资料:

AllAPI.net - Your #1 source for using API-functions in Visual Basic!

createCursor function (winuser.h) - Win32 apps | Microsoft Learn

SetSystemCursor function (winuser.h) - Win32 apps | Microsoft Learn

关键字:自定义光标、隐藏/显示光标、Windows系统光标显示

软件上新 查看更多