【发布时间】:2011-10-21 15:19:53
【问题描述】:
有没有办法确定当前鼠标光标是否动画?
前段时间我正在寻找一种方法how to save the current cursor。我发现 DrawIconEx 函数非常适合我的目的。不幸的是,我不知道如何确定当前光标是否为动画。我希望如果我将 istepIfAniCur 参数设置为 1 以防静态游标 DrawIconEx 返回 False 但它确实忽略了该参数并返回 True 什么不允许我在循环中使用它来获取静态游标以及所有从动画的帧。如果动画按预期工作,那么当您使用 istepIfAniCur 超出范围时,它会返回 False。
那么我如何确定 HICON (HCURSOR) 是动画光标? DrawIconEx 如何确定光标是动画的?
非常感谢
【问题讨论】:
-
听起来你在写远程桌面软件。如果是这样,你不应该使用本地机器的光标吗?
-
@David - 是的,类似的东西。但我最后两个问题的提出主要是因为我的好奇心。当然,我必须显示在查看器一侧的光标集,我不能让用户摸索他身边的跳跃兔子光标到底是什么。我只停留在这个原始的东西上,想知道DrawIconEx 是如何识别你正在向它传递动画光标句柄的,在我的情况下它没有实际用途。
-
@David - 现在我正在考虑它;自定义光标的情况如何?在这种情况下,如果另一侧的用户正在绘图,让观众看到例如刷子会很好。如果是 OEM 光标,我当然会使用查看器的设置。
-
也许您可以使用
GetIconInfo来检索与光标关联的位图的尺寸(使用GetObject)并得到numFrames = width_of_bitmap /height_of_bitmap`,假设所有光标都是方形的。 -
@user786653 - 我试过了,但它总是返回一帧的宽度。请参阅下面的 Delphi 示例的临时答案。
标签: c++ delphi winapi animated mouse-cursor