加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 如何确定当前鼠标光标是否已设置动画?

发布时间:2020-12-16 03:41:50 所属栏目:百科 来源:网络整理
导读:有没有办法如何确定当前鼠标光标是否动画? 我前段时间正在寻找一种方式how to save the current cursor.我找到了DrawIconEx功能,完全符合我的目的.不幸的是,我不知道如何确定当前光标是否已设置动画.我希望如果我将istepIfAniCur参数设置为1,以防静态游标Dr
有没有办法如何确定当前鼠标光标是否动画?

我前段时间正在寻找一种方式how to save the current cursor.我找到了DrawIconEx功能,完全符合我的目的.不幸的是,我不知道如何确定当前光标是否已设置动画.我希望如果我将istepIfAniCur参数设置为1,以防静态游标DrawIconEx返回False,但它确实忽略了该参数并返回True,不允许我在循环中使用它来获取静态游标以及来自的所有帧动画片.如果是动画,则按预期工作,因此当您使用istepIfAniCur超出范围时,它将返回False.

那我怎么知道HICON(HCURSOR)是动画光标呢? DrawIconEx如何确定光标是动画的?

非常感谢

解决方法

我找到了一个解决方法 – 传递给 DrawIconEx函数最大值 UINT的istepIfAniCur参数.有人不可能用4,294,967,295帧创建动画光标(可能对某些光标影片:)

有了这个事实,您可以将此值传递给DrawIconEx函数,该函数在光标动画时(因为超出帧范围)将返回False,而在静态情况下则返回True,因为它忽略了istepIfAniCur参数.你应该将0传递给diFlags参数,因为不需要绘制任何东西.

这是Delphi的例子:

if not DrawIconEx(Canvas.Handle,hCursor,High(Cardinal),0) then
  Caption := 'Cursor is animated ...'
else
  Caption := 'Cursor is not animated ...';

而且因为我承诺C标签在这里是我的翻译尝试

if (!DrawIconEx(this->Canvas->Handle,UINT_MAX,NULL,0))
  this->Caption = "Cursor is animated ...";
else
  this->Caption = "Cursor is not animated ...";

超出帧范围也由操作系统错误ERROR_INVALID_PARAMETER指示当DrawIconEx失败时您可以使用GetLastError功能检查的内容.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读