Compartilhar via


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

Define propriedades para o cursor.

Sintaxe

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

Parâmetros

[in] XHotSpot

Tipo: UINT

Deslocamento de coordenada X (em pixels) que marca o centro do cursor. O deslocamento é relativo ao canto superior esquerdo do cursor. Quando o cursor recebe uma nova posição, a imagem é desenhada em um deslocamento dessa nova posição determinada pela subtração das coordenadas de ponto quente da posição.

[in] YHotSpot

Tipo: UINT

Deslocamento de coordenada Y (em pixels) que marca o centro do cursor. O deslocamento é relativo ao canto superior esquerdo do cursor. Quando o cursor recebe uma nova posição, a imagem é desenhada em um deslocamento dessa nova posição determinada pela subtração das coordenadas de ponto quente da posição.

[in] pCursorBitmap

Tipo: IDirect3DSurface9*

Ponteiro para uma interface IDirect3DSurface9 . Esse parâmetro deve apontar para uma superfície ARGB 8888 (formato D3DFMT_A8R8G8B8). O conteúdo dessa superfície será copiado e potencialmente convertido em um buffer interno do qual o cursor é exibido. As dimensões dessa superfície devem ser menores do que as dimensões do modo de exibição e devem ser uma potência de dois em cada direção, embora não necessariamente a mesma potência de dois. O canal alfa deve ser 0.0 ou 1.0.

Retornar valor

Tipo: HRESULT

Se o método for bem-sucedido, o valor retornado será D3D_OK. Se o método falhar, o valor retornado poderá ser D3DERR_INVALIDCALL.

Comentários

Um cursor do sistema operacional é criado e usado em qualquer uma dessas condições:

  • O hardware definiu D3DCURSORCAPS_COLOR (consulte D3DCURSORCAPS) e o tamanho do cursor é 32x32 (que é o tamanho do cursor no sistema operacional).
  • O aplicativo está em execução no modo de janela.
Caso contrário, o DirectX usará um cursor emulado. Um aplicativo usa IDirect3DDevice9::SetCursorPosition para mover um cursor emulado para seguir o movimento do mouse.

É recomendável que os aplicativos sempre interceptam WM_MOUSEMOVE eventos e chamem DXSetCursorPosition.

As funções de cursor Direct3D usam cursor GDI ou emulação de software, dependendo do hardware. Normalmente, os usuários desejam responder a uma mensagem WM_SETCURSOR. Por exemplo, talvez eles queiram escrever o manipulador de mensagens da seguinte maneira:


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;

Ou talvez os usuários queiram chamar o método IDirect3DDevice9::SetCursorProperties se quiserem alterar o cursor.

O aplicativo pode determinar qual suporte de hardware está disponível para cursores examinando os membros apropriados da estrutura D3DCAPS9 . Normalmente, o hardware dá suporte a apenas cursores 32x32 e, quando em janelas, o sistema pode dar suporte apenas a cursores 32x32. Nesse caso, IDirect3DDevice9::SetCursorProperties ainda é bem-sucedido, mas o cursor pode ser reduzido a esse tamanho. O ponto de acesso é dimensionado adequadamente.

O cursor não sobrevive quando o dispositivo é perdido. Esse método deve ser chamado depois que o dispositivo é redefinido.

Requisitos

Requisito Valor
Plataforma de Destino Windows
Cabeçalho d3d9helper.h (inclua D3D9.h)
Biblioteca D3D9.lib

Confira também

D3DCAPS9

IDirect3DDevice9

IDirect3DDevice9::ShowCursor