DirectX设置光标疑问
必须创建一个directinput的mouse才可以吗?
我只想设置一个图片的光标。不需要mouse
[解决办法]
注意事项:
1 传递给SetCursorProperties函数的 LPDIRECT3DSURFACE9 参数必须是 default a8r8b8g8资源 :
LPDIRECT3DSURFACE9 surface;
m_pDevice9->CreateOffscreenPlainSurface(32,32,D3DFMT_A8R8G8B8,D3DPOOL_DEFAULT,&surface,NULL);
2 当使用dinput鼠标时不能设置独占模式 DISCL_EXCLUSIVE , 否则不能显示游标.
3 不管源图片多大最终是以32*32大小呈现
4 不需要修改 WM_SETCURSOR 消息。return false 就好。只需要在win32 和 dinput控制切换的时候调用
SetCursor(NULL);
m_pDevice9->ShowCursor(TRUE);
好处:
当硬件支持高分辨率鼠标时(基本都支持)。鼠标刷新不受图像刷新速度影响,即使你的图形fps<5,游标一样能快速移动。就像windows操作系统即使挂掉了,鼠标还是能移动