IDirect3DDevice9::SetCursorProperties 方法 (d3d9helper.h)
设置游标的属性。
语法
HRESULT SetCursorProperties(
[in] UINT XHotSpot,
[in] UINT YHotSpot,
[in] IDirect3DSurface9 *pCursorBitmap
);
参数
[in] XHotSpot
类型: UINT
标记光标中心的 X 坐标偏移量 () 像素。 偏移量相对于光标的左上角。 当光标获得新位置时,将从该位置减去热点坐标来确定的偏移量处绘制图像。
[in] YHotSpot
类型: UINT
标记光标中心的 Y 坐标偏移量 (像素) 。 偏移量相对于光标的左上角。 当光标获得新位置时,将从该位置减去热点坐标来确定的偏移量处绘制图像。
[in] pCursorBitmap
类型: IDirect3DSurface9*
指向 IDirect3DSurface9 接口的指针。 此参数必须指向 8888 ARGB 图面 (格式D3DFMT_A8R8G8B8) 。 此图面的内容将被复制,并可能将其格式转换为显示光标的内部缓冲区。 此图面的尺寸必须小于显示模式的尺寸,并且每个方向必须是 2 的幂,尽管不一定等于 2 的幂。 alpha 通道必须为 0.0 或 1.0。
返回值
类型: HRESULT
如果该方法成功,则返回值D3D_OK。 如果方法失败,则可以D3DERR_INVALIDCALL返回值。
注解
在以下任一条件下创建和使用操作系统游标:
- 硬件已设置D3DCURSORCAPS_COLOR (see D3DCURSORCAPS) ,光标大小为 32x32 (这是操作系统) 中的游标大小。
- 应用程序以窗口模式运行。
建议应用程序始终捕获WM_MOUSEMOVE事件并调用 DXSetCursorPosition。
Direct3D 游标函数使用 GDI 游标或软件仿真,具体取决于硬件。 用户通常想要响应WM_SETCURSOR消息。 例如,他们可能需要编写消息处理程序,如下所示:
case WM_SETCURSOR:
// Turn off window cursor.
SetCursor( NULL );
m_pd3dDevice->ShowCursor( TRUE );
return TRUE; // Prevent Windows from setting cursor to window class cursor.
break;
或者,如果用户想要更改游标,则可能需要调用 IDirect3DDevice9::SetCursorProperties 方法。
应用程序可以通过检查D3DCAPS9结构的适当成员来确定游 标 可用的硬件支持。 通常,硬件仅支持 32x32 游标,当窗口化时,系统可能仅支持 32x32 游标。 在这种情况下, IDirect3DDevice9::SetCursorProperties 仍然成功,但游标可能会减小到该大小。 适当缩放热点。
当设备丢失时,光标无法生存。 必须在重置设备后调用此方法。
要求
要求 | 值 |
---|---|
目标平台 | Windows |
标头 | d3d9helper.h (包括 D3D9.h) |
Library | D3D9.lib |