如何制作自定义系统范围的鼠标光标动画?

时间:2010-03-01 23:13:42

标签: c++ c winapi mouse

我为残疾人编写软件。其中一个问题是难以跟踪鼠标指针。当用户需要找到它时,我想让鼠标光标发光(或者类似的效果。也许像水一样涟漪)。这是怎么做到的?我知道这是可能的,因为它被用在各种软件中。

4 个答案:

答案 0 :(得分:2)

查看Realworld Cursor Editor找到here

编辑:正如OP指出的那样,OP正在寻找一种使用Win32API以编程方式创建动画光标的方法。 AFAIK无法完成或者是冗长的方式,'LoadCursor'函数可以从嵌入式资源或带有扩展名 .ani 的磁盘上加载光标,因此,我的答案是支持使用Realworld Cursor Editor,它可以创建一个包含动画光标的 .ani 文件,另一种方法是使用“控制面板”> '鼠标',单击对话框本身的'指针'选项卡页面,将其设置为系统范围的设置。以下是动画光标如何加载here的示例。

希望这有帮助, 最好的祝福, 汤姆。

答案 1 :(得分:2)

您可以使用CreateIconFromResource“动态”创建自定义动画游标,并自己创建游标数据结构。我最近在Wine项目中添加了一些用于以这种方式创建游标的测试,你可以通过查看这个三帧游标的示例来查看游标数据的结构: http://source.winehq.org/source/dlls/user32/tests/cursoricon.c?v=wine-1.3.16#L222

答案 2 :(得分:0)

另一种方法是将光标保持原样,然后在其周围添加一些效果,例如,使用您绘制一些动画的临时最顶层的窗口。 (例如,alpha混合圆圈可在光标位置周围获得发光效果。)

这样做的好处是可以保持光标不变,所以如果它传达信息(例如沙漏或尺寸处理),你就不会干扰它。

答案 3 :(得分:0)

如果要做的只是使光标周围出现波纹,可以在控制面板的鼠标部分中进行更改,以使按下CTRL键时在光标周围出现波纹。