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입니다(운영 체제의 커서 크기).
- 애플리케이션이 창 모드에서 실행 중입니다.
애플리케이션은 항상 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 |