Bagikan melalui


Metode IDirect3DDevice9::SetCursorProperties (d3d9helper.h)

Mengatur properti untuk kursor.

Sintaks

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

Parameter

[in] XHotSpot

Jenis: UINT

Offset koordinat X (dalam piksel) yang menandai bagian tengah kursor. Offset relatif terhadap sudut kiri atas kursor. Ketika kursor diberi posisi baru, gambar digambar pada offset dari posisi baru ini yang ditentukan dengan mengurangi koordinat hot spot dari posisi tersebut.

[in] YHotSpot

Jenis: UINT

Offset koordinat Y (dalam piksel) yang menandai bagian tengah kursor. Offset relatif terhadap sudut kiri atas kursor. Ketika kursor diberi posisi baru, gambar digambar pada offset dari posisi baru ini yang ditentukan dengan mengurangi koordinat hot spot dari posisi tersebut.

[in] pCursorBitmap

Jenis: IDirect3DSurface9*

Arahkan ke antarmuka IDirect3DSurface9 . Parameter ini harus menunjuk ke permukaan ARGB 8888 (format D3DFMT_A8R8G8B8). Isi permukaan ini akan disalin dan berpotensi dikonversi format menjadi buffer internal tempat kursor ditampilkan. Dimensi permukaan ini harus kurang dari dimensi mode tampilan, dan harus menjadi kekuatan dua di setiap arah, meskipun tidak selalu kekuatan yang sama dari dua. Saluran alfa harus 0,0 atau 1,0.

Nilai kembali

Jenis: HRESULT

Jika metode berhasil, nilai yang dikembalikan D3D_OK. Jika metode gagal, nilai yang dikembalikan dapat D3DERR_INVALIDCALL.

Keterangan

Kursor sistem operasi dibuat dan digunakan dalam salah satu kondisi berikut:

  • Perangkat keras telah mengatur D3DCURSORCAPS_COLOR (lihat D3DCURSORCAPS), dan ukuran kursor adalah 32x32 (yang merupakan ukuran kursor dalam sistem operasi).
  • Aplikasi berjalan dalam mode berjendela.
Jika tidak, DirectX menggunakan kursor yang ditimulasi. Aplikasi menggunakan IDirect3DDevice9::SetCursorPosition untuk memindahkan kursor yang ditiru untuk mengikuti gerakan mouse.

Disarankan agar aplikasi selalu menjebak peristiwa WM_MOUSEMOVE dan memanggil DXSetCursorPosition.

Fungsi kursor Direct3D menggunakan kursor GDI atau emulasi perangkat lunak, tergantung pada perangkat keras. Pengguna biasanya ingin merespons pesan WM_SETCURSOR. Misalnya, mereka mungkin ingin menulis handler pesan sebagai berikut:


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;

Atau, pengguna mungkin ingin memanggil metode IDirect3DDevice9::SetCursorProperties jika mereka ingin mengubah kursor.

Aplikasi dapat menentukan dukungan perangkat keras apa yang tersedia untuk kursor dengan memeriksa anggota struktur D3DCAPS9 yang sesuai. Biasanya, perangkat keras hanya mendukung kursor 32x32 dan, ketika berjendela, sistem mungkin hanya mendukung kursor 32x32. Dalam hal ini, IDirect3DDevice9::SetCursorProperties masih berhasil tetapi kursor mungkin dikurangi ke ukuran tersebut. Hot spot diskalakan dengan tepat.

Kursor tidak bertahan ketika perangkat hilang. Metode ini harus dipanggil setelah perangkat direset.

Persyaratan

Persyaratan Nilai
Target Platform Windows
Header d3d9helper.h (termasuk D3D9.h)
Pustaka D3D9.lib

Lihat juga

D3DCAPS9

IDirect3DDevice9

IDirect3DDevice9::ShowCursor