Método IDirect3DDevice9::SetCursorProperties (d3d9.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.
Valor retornado
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.
É 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
Plataforma de Destino | Windows |
Cabeçalho | d3d9.h (inclua D3D9.h) |
Biblioteca | D3D9.lib |