다음을 통해 공유


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의 힘이어야 합니다. 알파 채널은 0.0 또는 1.0이어야 합니다.

반환 값

형식: HRESULT

메서드가 성공하면 반환 값이 D3D_OK. 메서드가 실패하면 반환 값을 D3DERR_INVALIDCALL 수 있습니다.

설명

운영 체제 커서가 만들어지고 다음 조건 중 하나에서 사용됩니다.

  • 하드웨어가 D3DCURSORCAPS_COLOR 설정했고( D3DCURSORCAPS 참조), 커서 크기는 32x32입니다(운영 체제의 커서 크기).
  • 애플리케이션이 창 모드에서 실행 중입니다.
그렇지 않으면 DirectX는 에뮬레이트된 커서를 사용합니다. 애플리케이션은 IDirect3DDevice9::SetCursorPosition 을 사용하여 에뮬레이트된 커서를 마우스 이동을 따르도록 이동합니다.

애플리케이션은 항상 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 포함)
라이브러리 D3D9.lib

추가 정보

D3DCAPS9

IDirect3DDevice9

IDirect3DDevice9::ShowCursor