Bagikan melalui


pesan WM_POINTERLEAVE

Dikirim ke jendela saat penunjuk meninggalkan rentang deteksi di atas jendela (arahkan mouse) atau saat penunjuk bergerak di luar batas jendela.

Jendela menerima pesan ini melalui fungsiWindowProc.

! [Penting]
Aplikasi desktop harus diketahui DPI. Jika aplikasi Anda tidak mengetahui DPI, koordinat layar yang terkandung dalam pesan penunjuk dan struktur terkait mungkin muncul tidak akurat karena virtualisasi DPI. Virtualisasi DPI menyediakan dukungan penskalaan otomatis untuk aplikasi yang tidak diketahui DPI dan aktif secara default (pengguna dapat menonaktifkannya). Untuk informasi selengkapnya, lihat Menulis Aplikasi High-DPI Win32.

#define WM_POINTERLEAVE                 0x024A

Parameter

wParam

Berisi pengidentifikasi pointer dan informasi tambahan. Gunakan makro berikut untuk mengambil informasi ini.

  • GET_POINTERID_WPARAM(wParam): pengidentifikasi penunjuk.
  • IS_POINTER_INRANGE_WPARAM(wParam): menunjukkan apakah pesan ini dihasilkan oleh penunjuk yang belum meninggalkan rentang deteksi. Bendera ini tidak diatur ketika pointer meninggalkan rentang deteksi jendela.
  • IS_POINTER_INCONTACT_WPARAM(wParam): bendera yang menunjukkan apakah pesan ini dihasilkan oleh pointer yang sedang dihubungi. Bendera ini tidak diatur untuk penunjuk dalam rentang deteksi (arahkan kursor).

lParam

Berisi lokasi titik penunjuk.

Nota

Karena pointer dapat melakukan kontak dengan perangkat melalui area non-sepele, lokasi titik ini mungkin merupakan penyederhanaan area pointer yang lebih kompleks. Jika memungkinkan, aplikasi harus menggunakan informasi area pointer lengkap alih-alih lokasi titik.

Gunakan makro berikut untuk mengambil koordinat layar fisik titik tersebut.

Mengembalikan nilai

Jika aplikasi memproses pesan ini, aplikasi harus mengembalikan nol.

Jika aplikasi tidak memproses pesan ini, aplikasi harus memanggil DefWindowProc.

Komentar

Pemberitahuan WM_POINTERLEAVE dapat digunakan oleh jendela untuk mengubah mode atau menghentikan umpan balik apa pun kepada pengguna saat pointer berada di atas permukaan jendela.

Pemberitahuan ini hanya dikirim ke jendela yang menerima input untuk penunjuk. Tabel berikut ini mencantumkan beberapa situasi di mana pemberitahuan ini dikirim.

Perbuatan Set Bendera Pemberitahuan Dikirim Ke
Penunjuk melayang melewati batas jendela. IS_POINTER_INRANGE_WPARAM Jendela di luar batas yang penunjuknya dipindahkan.
Penunjuk keluar dari rentang deteksi. N/A Jendela tempat pointer meninggalkan rentang deteksi.

! [Penting]
Ketika jendela kehilangan pengambilan pointer dan menerima pemberitahuan WM_POINTERCAPTURECHANGED, biasanya tidak akan menerima pemberitahuan lebih lanjut. Untuk alasan ini, penting bagi Anda untuk tidak membuat asumsi apa pun berdasarkan pemberitahuan WM_POINTERDOWN/WM_POINTERUP atau WM_POINTERENTER/WM_POINTERLEAVE yang dipasangkan secara merata.

Jika kontak dipertahankan dengan digitizer input dan pointer bergerak di luar jendela, WM_POINTERLEAVE tidak dihasilkan. WM_POINTERLEAVE dihasilkan hanya ketika penunjuk melayang melewati batas jendela atau kontak dihentikan.

WM_POINTERLEAVE diposting ke antrean pesan yang diposting jika input berasal dari perangkat mouse.

Persyaratan

Syarat Nilai
Klien minimum yang didukung
Windows 8 [hanya aplikasi desktop]
Server minimum yang didukung
Windows Server 2012 [hanya aplikasi desktop]
Header
Winuser.h (termasuk Windows.h)

Lihat juga

Pesan

Referensi

GET_POINTERID_WPARAM

IS_POINTER_INRANGE_WPARAM

IS_POINTER_INCONTACT_WPARAM