游戏开发论坛

 找回密码
 立即注册
搜索
查看: 4211|回复: 12

请教如何在D3D9中显示动态光标?

[复制链接]

2

主题

9

帖子

11

积分

新手上路

Rank: 1

积分
11
发表于 2006-1-9 15:31:00 | 显示全部楼层 |阅读模式
我写了一段D3D程序,创建了一个IDirect3DSurface9的集合,并加载了一系列图像,在一个线程中每隔100ms调用一次 IDirect3DDevice9::SetCursorProperties将光标设置为新的图面,可是如果不移动鼠标,新设置的图面是显示不出来的,只有在移动鼠标时才能看见光标动画,我只好每次把鼠标位置设置为新的位置再设置回去,要不看不到动画效果.请问哪位高手有高招指点一下?

7

主题

61

帖子

61

积分

注册会员

Rank: 2

积分
61
发表于 2006-1-10 00:08:00 | 显示全部楼层

Re:请教如何在D3D9中显示动态光标?

我想可以不用SetCursorProperties来设置光标,自己在鼠标位置贴自己的图片就OK了,不知道对不对

2

主题

9

帖子

11

积分

新手上路

Rank: 1

积分
11
 楼主| 发表于 2006-1-10 12:47:00 | 显示全部楼层

Re:请教如何在D3D9中显示动态光标?

对得很,不过SetCursorProperties支持硬件特性,硬件支持时很高效,主要是探讨一下,我认为D3D这种做法很二,人家调用了SetCursorProperties肯定不会是调着玩的,你不给刷新光标人家不白调了?

85

主题

824

帖子

878

积分

高级会员

Rank: 4

积分
878
QQ
发表于 2006-1-10 13:53:00 | 显示全部楼层

Re:请教如何在D3D9中显示动态光标?

D3D的所谓硬件鼠标一直都不好用,对动画鼠标来说自己帖图反而更好,而且一样可以用到硬件加速

20

主题

398

帖子

398

积分

中级会员

Rank: 3Rank: 3

积分
398
发表于 2006-1-11 10:18:00 | 显示全部楼层

Re:请教如何在D3D9中显示动态光标?

同意楼上的看法,动画光标我一向都是自己贴图的!^_^

6

主题

110

帖子

110

积分

注册会员

Rank: 2

积分
110
发表于 2006-1-13 13:07:00 | 显示全部楼层

Re:请教如何在D3D9中显示动态光标?

学习了

7

主题

67

帖子

69

积分

注册会员

Rank: 2

积分
69
发表于 2006-1-14 03:05:00 | 显示全部楼层

Re:请教如何在D3D9中显示动态光标?

每次调用SetCursorProperties前,都需要重新调用一次m_lpD3DDevice->ShowCursor(TRUE);
这样刷新就正常了!

7

主题

67

帖子

69

积分

注册会员

Rank: 2

积分
69
发表于 2006-1-14 03:10:00 | 显示全部楼层

Re:请教如何在D3D9中显示动态光标?

还有,没必要专门开线程调用SetCursorProperties,
在主窗口的WM_SETCURSOR消息中,调用就可以了。

2

主题

9

帖子

11

积分

新手上路

Rank: 1

积分
11
 楼主| 发表于 2006-1-15 23:03:00 | 显示全部楼层

Re: Re:请教如何在D3D9中显示动态光标?

GhostCheng: Re:请教如何在D3D9中显示动态光标?

还有,没必要专门开线程调用SetCursorProperties,
在主窗口的WM_SETCURSOR消息中,调用就可以了。

这样的话,怎么动画光标?

2

主题

9

帖子

11

积分

新手上路

Rank: 1

积分
11
 楼主| 发表于 2006-1-15 23:05:00 | 显示全部楼层

Re: Re:请教如何在D3D9中显示动态光标?

GhostCheng: Re:请教如何在D3D9中显示动态光标?

每次调用SetCursorProperties前,都需要重新调用一次m_lpD3DDevice->ShowCursor(TRUE);
这样刷新就正常了!

这样做好像没有效果
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-23 06:52

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表