Bagikan melalui


Mouse Input

Bagian ini menjelaskan bagaimana sistem memberikan input mouse ke aplikasi Anda dan bagaimana aplikasi menerima dan memproses input tersebut.

Di bagian ini

Topik Deskripsi
Tentang Input Mouse
Topik ini membahas input mouse.
Menggunakan Input Mouse
Bagian ini mencakup tugas yang terkait dengan input mouse.
Referensi Input Mouse

Fungsi

Nama Deskripsi
_TrackMouseEvent Memposting pesan saat penunjuk mouse meninggalkan jendela atau mengarahkan kursor ke jendela selama jangka waktu tertentu. Fungsi ini memanggil TrackMouseEvent jika ada, jika tidak, fungsi ini menirunya.
BlockInput Memblokir peristiwa input keyboard dan mouse agar tidak menjangkau aplikasi.
DragDetect Mengambil mouse dan melacak gerakannya hingga pengguna melepaskan tombol kiri, menekan tombol ESC, atau memindahkan mouse ke luar persegi panjang seret di sekitar titik yang ditentukan. Lebar dan tinggi persegi panjang seret ditentukan oleh nilai SM_CXDRAG dan SM_CYDRAG yang dikembalikan oleh fungsi GetSystemMetrics .
EnableMouseInPointer Memungkinkan mouse bertindak sebagai perangkat penunjuk.
EnableWindow Mengaktifkan atau menonaktifkan input mouse dan keyboard ke jendela atau kontrol yang ditentukan. Ketika input dinonaktifkan, jendela tidak menerima input seperti klik mouse dan penekanan tombol. Ketika input diaktifkan, jendela menerima semua input.
GetCapture Mengambil handel ke jendela (jika ada) yang telah mengambil mouse. Hanya satu jendela pada satu waktu yang dapat menangkap mouse; jendela ini menerima input mouse apakah kursor berada di dalam batasnya atau tidak.
GetDoubleClickTime Mengambil waktu klik-ganda saat ini untuk mouse. Klik ganda adalah serangkaian dua klik tombol mouse, yang kedua terjadi dalam waktu yang ditentukan setelah yang pertama. Waktu klik ganda adalah jumlah maksimum milidetik yang mungkin terjadi antara klik pertama dan kedua dari klik ganda.
GetMouseMovePointsEx Mengambil riwayat hingga 64 koordinat mouse atau pena sebelumnya.
IsWindowEnabled Menentukan apakah jendela yang ditentukan diaktifkan untuk input mouse dan keyboard.
ReleaseCapture Melepaskan tangkapan mouse dari jendela di utas saat ini dan memulihkan pemrosesan input mouse normal. Jendela yang telah menangkap mouse menerima semua input mouse, terlepas dari posisi kursor, kecuali ketika tombol mouse diklik saat hot spot kursor berada di jendela utas lain.
SendInput Mensintesis penekanan tombol, gerakan mouse, dan klik tombol.
SetCapture Menyetel tangkapan mouse ke jendela yang ditentukan milik utas saat ini. SetCapture menangkap input mouse baik ketika mouse berada di atas jendela penangkapan, atau ketika tombol mouse ditekan saat mouse berada di atas jendela penangkapan dan tombol masih turun. Hanya satu jendela pada satu waktu yang dapat menangkap mouse.
Jika kursor mouse berada di atas jendela yang dibuat oleh utas lain, sistem akan mengarahkan input mouse ke jendela yang ditentukan hanya jika tombol mouse tidak berfungsi.
SetDoubleClickTime Mengatur waktu klik ganda untuk mouse. Klik ganda adalah serangkaian dua klik tombol mouse, yang kedua terjadi dalam waktu yang ditentukan setelah yang pertama. Waktu klik ganda adalah jumlah maksimum milidetik yang mungkin terjadi antara klik pertama dan kedua dari klik ganda.
SwapMouseButton Membalikkan atau memulihkan arti tombol mouse kiri dan kanan.
TrackMouseEvent Memposting pesan saat penunjuk mouse meninggalkan jendela atau mengarahkan kursor ke jendela selama jangka waktu tertentu.

Fungsi berikut sudah usang.

Fungsi Deskripsi
mouse_event Mensintesis gerakan mouse dan klik tombol.

Pemberitahuan

Nama Deskripsi
WM_APPCOMMAND Memberi tahu jendela bahwa pengguna menghasilkan peristiwa perintah aplikasi, misalnya, dengan mengklik tombol perintah aplikasi menggunakan mouse atau mengetik tombol perintah aplikasi pada keyboard.
WM_CAPTURECHANGED Dikirim ke jendela yang kehilangan tangkapan mouse.
WM_LBUTTONDBLCLK Diposting saat pengguna mengklik dua kali tombol mouse kiri saat kursor berada di area klien jendela. Jika mouse tidak diambil, pesan diposting ke jendela di bawah kursor. Jika tidak, pesan diposting ke jendela yang telah mengambil mouse.
WM_LBUTTONDOWN Diposting saat pengguna menekan tombol mouse kiri saat kursor berada di area klien jendela. Jika mouse tidak diambil, pesan diposting ke jendela di bawah kursor. Jika tidak, pesan diposting ke jendela yang telah mengambil mouse.
WM_LBUTTONUP Diposting saat pengguna melepaskan tombol mouse kiri saat kursor berada di area klien jendela. Jika mouse tidak diambil, pesan diposting ke jendela di bawah kursor. Jika tidak, pesan diposting ke jendela yang telah mengambil mouse.
WM_MBUTTONDBLCLK Diposting ketika pengguna mengklik dua kali tombol mouse tengah saat kursor berada di area klien jendela. Jika mouse tidak diambil, pesan diposting ke jendela di bawah kursor. Jika tidak, pesan diposting ke jendela yang telah mengambil mouse.
WM_MBUTTONDOWN Diposting ketika pengguna menekan tombol mouse tengah saat kursor berada di area klien jendela. Jika mouse tidak diambil, pesan diposting ke jendela di bawah kursor. Jika tidak, pesan diposting ke jendela yang telah mengambil mouse.
WM_MBUTTONUP Diposting saat pengguna melepaskan tombol mouse tengah saat kursor berada di area klien jendela. Jika mouse tidak diambil, pesan diposting ke jendela di bawah kursor. Jika tidak, pesan diposting ke jendela yang telah mengambil mouse.
WM_MOUSEACTIVATE Dikirim ketika kursor berada di jendela tidak aktif dan pengguna menekan tombol mouse. Jendela induk menerima pesan ini hanya jika jendela anak meneruskannya ke fungsi DefWindowProc .
WM_MOUSEHOVER Diposting ke jendela saat kursor mengarahkan kursor ke area klien jendela untuk jangka waktu yang ditentukan dalam panggilan sebelumnya ke TrackMouseEvent.
WM_MOUSEHWHEEL Dikirim ke jendela fokus saat roda gulir horizontal mouse di miringkan atau diputar. FungsiDefWindowProcmenyebarkan pesan ke induk jendela. Seharusnya tidak ada penerusan internal pesan, karena DefWindowProc menyebarkannya ke rantai induk sampai menemukan jendela yang memprosesnya.
WM_MOUSELEAVE Diposting ke jendela saat kursor meninggalkan area klien jendela yang ditentukan dalam panggilan sebelumnya ke TrackMouseEvent.
WM_MOUSEMOVE Diposting ke jendela saat kursor bergerak. Jika mouse tidak diambil, pesan diposting ke jendela yang berisi kursor. Jika tidak, pesan diposting ke jendela yang telah mengambil mouse.
WM_MOUSEWHEEL Dikirim ke jendela fokus saat roda mouse diputar. Fungsi DefWindowProc menyebarkan pesan ke induk jendela. Seharusnya tidak ada penerusan internal pesan, karena DefWindowProc menyebarkannya ke rantai induk sampai menemukan jendela yang memprosesnya.
WM_NCHITTEST Dikirim ke jendela untuk menentukan bagian jendela apa yang sesuai dengan koordinat layar tertentu. Ini dapat terjadi, misalnya, ketika kursor bergerak, ketika tombol mouse ditekan atau dilepaskan, atau sebagai respons terhadap panggilan ke fungsi seperti WindowFromPoint. Jika mouse tidak diambil, pesan dikirim ke jendela di bawah kursor. Jika tidak, pesan dikirim ke jendela yang telah menangkap mouse.
WM_NCLBUTTONDBLCLK Diposting saat pengguna mengklik dua kali tombol mouse kiri saat kursor berada di dalam area nonkelola jendela. Pesan ini diposting ke jendela yang berisi kursor. Jika jendela telah mengambil mouse, pesan ini tidak diposting.
WM_NCLBUTTONDOWN Diposting saat pengguna menekan tombol mouse kiri saat kursor berada di dalam area nonkelola jendela. Pesan ini diposting ke jendela yang berisi kursor. Jika jendela telah mengambil mouse, pesan ini tidak diposting.
WM_NCLBUTTONUP Diposting saat pengguna melepaskan tombol mouse kiri saat kursor berada di dalam area nonkelola jendela. Pesan ini diposting ke jendela yang berisi kursor. Jika jendela telah mengambil mouse, pesan ini tidak diposting.
WM_NCMBUTTONDBLCLK Diposting saat pengguna mengklik dua kali tombol mouse tengah saat kursor berada di dalam area nonkelola jendela. Pesan ini diposting ke jendela yang berisi kursor. Jika jendela telah mengambil mouse, pesan ini tidak diposting.
WM_NCMBUTTONDOWN Diposting saat pengguna menekan tombol mouse tengah saat kursor berada di dalam area nonkelola jendela. Pesan ini diposting ke jendela yang berisi kursor. Jika jendela telah mengambil mouse, pesan ini tidak diposting.
WM_NCMBUTTONUP Diposting saat pengguna melepaskan tombol mouse tengah saat kursor berada di dalam area nonkelola jendela. Pesan ini diposting ke jendela yang berisi kursor. Jika jendela telah mengambil mouse, pesan ini tidak diposting.
WM_NCMOUSEHOVER Diposting ke jendela saat kursor mengarahkan kursor ke area nonkelola jendela untuk jangka waktu yang ditentukan dalam panggilan sebelumnya keTrackMouseEvent.
WM_NCMOUSELEAVE Diposting ke jendela saat kursor meninggalkan area nonkelola jendela yang ditentukan dalam panggilan sebelumnya keTrackMouseEvent.
WM_NCMOUSEMOVE Diposting ke jendela saat kursor dipindahkan di dalam area nonkelola jendela. Pesan ini diposting ke jendela yang berisi kursor. Jika jendela telah mengambil mouse, pesan ini tidak diposting.
WM_NCRBUTTONDBLCLK Diposting saat pengguna mengklik dua kali tombol kanan mouse saat kursor berada di dalam area nonkelola jendela. Pesan ini diposting ke jendela yang berisi kursor. Jika jendela telah mengambil mouse, pesan ini tidak diposting.
WM_NCRBUTTONDOWN Diposting saat pengguna menekan tombol kanan mouse saat kursor berada di dalam area nonkelola jendela. Pesan ini diposting ke jendela yang berisi kursor. Jika jendela telah mengambil mouse, pesan ini tidak diposting.
WM_NCRBUTTONUP Diposting saat pengguna melepaskan tombol kanan mouse saat kursor berada di dalam area nonkelola jendela. Pesan ini diposting ke jendela yang berisi kursor. Jika jendela telah mengambil mouse, pesan ini tidak diposting.
WM_NCXBUTTONDBLCLK Diposting saat pengguna mengklik dua kali tombol X pertama atau kedua saat kursor berada di area nonkelola jendela. Pesan ini diposting ke jendela yang berisi kursor. Jika jendela telah mengambil mouse, pesan ini tidak diposting.
WM_NCXBUTTONDOWN Diposting saat pengguna menekan tombol X pertama atau kedua saat kursor berada di area nonkelola jendela. Pesan ini diposting ke jendela yang berisi kursor. Jika jendela telah mengambil mouse, pesan ini tidak diposting.
WM_NCXBUTTONUP Diposting saat pengguna merilis tombol X pertama atau kedua saat kursor berada di area nonkelola jendela. Pesan ini diposting ke jendela yang berisi kursor. Jika jendela telah mengambil mouse, pesan ini tidak diposting.
WM_RBUTTONDBLCLK Diposting saat pengguna mengklik dua kali tombol kanan mouse saat kursor berada di area klien jendela. Jika mouse tidak diambil, pesan diposting ke jendela di bawah kursor. Jika tidak, pesan diposting ke jendela yang telah mengambil mouse.
WM_RBUTTONDOWN Diposting saat pengguna menekan tombol kanan mouse saat kursor berada di area klien jendela. Jika mouse tidak diambil, pesan diposting ke jendela di bawah kursor. Jika tidak, pesan diposting ke jendela yang telah mengambil mouse.
WM_RBUTTONUP Diposting saat pengguna merilis tombol kanan mouse saat kursor berada di area klien jendela. Jika mouse tidak diambil, pesan diposting ke jendela di bawah kursor. Jika tidak, pesan diposting ke jendela yang telah mengambil mouse.
WM_XBUTTONDBLCLK Diposting saat pengguna mengklik dua kali tombol X pertama atau kedua saat kursor berada di area klien jendela. Jika mouse tidak diambil, pesan diposting ke jendela di bawah kursor. Jika tidak, pesan diposting ke jendela yang telah mengambil mouse.
WM_XBUTTONDOWN Diposting saat pengguna menekan tombol X pertama atau kedua saat kursor berada di area klien jendela. Jika mouse tidak diambil, pesan diposting ke jendela di bawah kursor. Jika tidak, pesan diposting ke jendela yang telah mengambil mouse.
WM_XBUTTONUP Diposting saat pengguna merilis tombol X pertama atau kedua saat kursor berada di area klien jendela. Jika mouse tidak diambil, pesan diposting ke jendela di bawah kursor. Jika tidak, pesan diposting ke jendela yang telah mengambil mouse.

Struktur

Nama Deskripsi
HARDWAREINPUT Berisi informasi tentang pesan simulasi yang dihasilkan oleh perangkat input selain keyboard atau mouse.
INPUT Berisi informasi yang digunakan untuk mensintesis peristiwa input seperti penekanan tombol, gerakan mouse, dan klik mouse.
LASTINPUTINFO Berisi waktu input terakhir.
MOUSEINPUT Berisi informasi tentang peristiwa mouse yang disimulasikan.
MOUSEMOVEPOINT Berisi informasi tentang lokasi mouse dalam koordinat layar.
TRACKMOUSEEVENT Digunakan oleh fungsi TrackMouseEvent untuk melacak kapan penunjuk mouse meninggalkan jendela atau mengarahkan kursor ke jendela untuk waktu tertentu.