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.
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 |