Compartir a través de


Método IDirect3DDevice9::SetCursorProperties (d3d9helper.h)

Establece las propiedades del cursor.

Sintaxis

HRESULT SetCursorProperties(
  [in] UINT              XHotSpot,
  [in] UINT              YHotSpot,
  [in] IDirect3DSurface9 *pCursorBitmap
);

Parámetros

[in] XHotSpot

Tipo: UINT

Desplazamiento de coordenadaS X (en píxeles) que marca el centro del cursor. El desplazamiento es relativo a la esquina superior izquierda del cursor. Cuando el cursor recibe una nueva posición, la imagen se dibuja en un desplazamiento de esta nueva posición determinada restando las coordenadas de punto activo de la posición.

[in] YHotSpot

Tipo: UINT

Desplazamiento de coordenadaS (en píxeles) que marca el centro del cursor. El desplazamiento es relativo a la esquina superior izquierda del cursor. Cuando el cursor recibe una nueva posición, la imagen se dibuja en un desplazamiento de esta nueva posición determinada restando las coordenadas de punto activo de la posición.

[in] pCursorBitmap

Tipo: IDirect3DSurface9*

Puntero a una interfaz IDirect3DSurface9 . Este parámetro debe apuntar a una superficie ARGB 8888 (formato D3DFMT_A8R8G8B8). El contenido de esta superficie se copiará y se convertirá potencialmente en un búfer interno desde el que se muestra el cursor. Las dimensiones de esta superficie deben ser menores que las dimensiones del modo de visualización y deben ser una potencia de dos en cada dirección, aunque no necesariamente la misma potencia de dos. El canal alfa debe ser 0,0 o 1,0.

Valor devuelto

Tipo: HRESULT

Si el método se realiza correctamente, el valor devuelto es D3D_OK. Si se produce un error en el método, el valor devuelto se puede D3DERR_INVALIDCALL.

Comentarios

Se crea un cursor del sistema operativo y se usa en cualquiera de estas condiciones:

  • El hardware ha establecido D3DCURSORCAPS_COLOR (vea D3DCURSORCAPS) y el tamaño del cursor es de 32 x 32 (que es el tamaño del cursor en el sistema operativo).
  • La aplicación se ejecuta en modo de ventana.
De lo contrario, DirectX usa un cursor emulado. Una aplicación usa IDirect3DDevice9::SetCursorPosition para mover un cursor emulado para seguir el movimiento del mouse.

Se recomienda que las aplicaciones siempre interceptan eventos WM_MOUSEMOVE y llamen a DXSetCursorPosition.

Las funciones de cursor de Direct3D usan el cursor GDI o la emulación de software, en función del hardware. Normalmente, los usuarios quieren responder a un mensaje de WM_SETCURSOR. Por ejemplo, es posible que quieran escribir el controlador de mensajes de la siguiente manera:


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;

O bien, es posible que los usuarios quieran llamar al método IDirect3DDevice9::SetCursorProperties si quieren cambiar el cursor.

La aplicación puede determinar qué compatibilidad de hardware está disponible para los cursores mediante el examen de los miembros adecuados de la estructura de D3DCAPS9 . Normalmente, el hardware solo admite cursores de 32 x 32 y, cuando se abre la ventana, el sistema solo admite cursores de 32 x 32. En este caso, IDirect3DDevice9::SetCursorProperties sigue funcionando correctamente, pero el cursor podría reducirse a ese tamaño. El punto de acceso frecuente se escala adecuadamente.

El cursor no sobrevive cuando se pierde el dispositivo. Se debe llamar a este método después de restablecer el dispositivo.

Requisitos

Requisito Value
Plataforma de destino Windows
Encabezado d3d9helper.h (incluya D3D9.h)
Library D3D9.lib

Consulte también

D3DCAPS9

IDirect3DDevice9

IDirect3DDevice9::ShowCursor