mouse_event (winuser.h)
Fungsi mouse_event mensintesis gerakan mouse dan klik tombol.
Sintaks
void mouse_event(
[in] DWORD dwFlags,
[in] DWORD dx,
[in] DWORD dy,
[in] DWORD dwData,
[in] ULONG_PTR dwExtraInfo
);
Parameter
[in] dwFlags
Jenis: DWORD
Mengontrol berbagai aspek gerakan mouse dan mengklik tombol. Parameter ini dapat berupa kombinasi tertentu dari nilai berikut.
Nilai yang menentukan status tombol mouse diatur untuk menunjukkan perubahan status, bukan kondisi yang sedang berlangsung. Misalnya, jika tombol mouse kiri ditekan dan ditahan, MOUSEEVENTF_LEFTDOWN diatur saat tombol kiri pertama kali ditekan, tetapi tidak untuk gerakan berikutnya. Demikian pula, MOUSEEVENTF_LEFTUP diatur hanya ketika tombol pertama kali dirilis.
Anda tidak dapat menentukan MOUSEEVENTF_WHEEL dan MOUSEEVENTF_XDOWN atau MOUSEEVENTF_XUP secara bersamaan dalam parameter dwFlags , karena keduanya memerlukan penggunaan bidang dwData .
[in] dx
Jenis: DWORD
Posisi absolut mouse di sepanjang sumbu x atau jumlah gerakannya sejak peristiwa mouse terakhir dihasilkan, tergantung pada pengaturan MOUSEEVENTF_ABSOLUTE. Data absolut ditentukan sebagai koordinat x mouse yang sebenarnya; data relatif ditentukan sebagai jumlah mickey yang dipindahkan. Mickey adalah jumlah yang harus digerakkan mouse untuk melaporkan bahwa mouse telah bergerak.
[in] dy
Jenis: DWORD
Posisi mutlak mouse di sepanjang sumbu y atau jumlah gerakannya sejak peristiwa mouse terakhir dihasilkan, tergantung pada pengaturan MOUSEEVENTF_ABSOLUTE. Data absolut ditentukan sebagai koordinat y mouse yang sebenarnya; data relatif ditentukan sebagai jumlah mickey yang dipindahkan.
[in] dwData
Jenis: DWORD
Jika dwFlags berisi MOUSEEVENTF_WHEEL, maka dwData menentukan jumlah pergerakan roda. Nilai positif menunjukkan bahwa roda diputar ke depan, jauh dari pengguna; nilai negatif menunjukkan bahwa roda diputar mundur, ke arah pengguna. Satu klik roda didefinisikan sebagai WHEEL_DELTA, yaitu 120.
Jika dwFlags berisi MOUSEEVENTF_HWHEEL, maka dwData menentukan jumlah pergerakan roda. Nilai positif menunjukkan bahwa roda miring ke kanan; nilai negatif menunjukkan bahwa roda miring ke kiri.
Jika dwFlags berisi MOUSEEVENTF_XDOWN atau MOUSEEVENTF_XUP, maka dwData menentukan tombol X mana yang ditekan atau dilepaskan. Nilai ini mungkin kombinasi dari bendera berikut.
Jika dwFlags tidak MOUSEEVENTF_WHEEL, MOUSEEVENTF_XDOWN, atau MOUSEEVENTF_XUP, maka dwData harus nol.
Nilai | Makna |
---|---|
|
Atur apakah tombol X pertama ditekan atau dilepaskan. |
|
Atur jika tombol X kedua ditekan atau dilepaskan. |
[in] dwExtraInfo
Jenis: ULONG_PTR
Nilai tambahan yang terkait dengan peristiwa mouse. Aplikasi memanggil GetMessageExtraInfo untuk mendapatkan informasi tambahan ini.
Mengembalikan nilai
Tidak ada
Keterangan
Jika mouse telah bergerak, ditunjukkan oleh MOUSEEVENTF_MOVE diatur, dx dan dy menyimpan informasi tentang gerakan tersebut. Informasi ditentukan sebagai nilai bilangan bulat absolut atau relatif.
Jika nilai MOUSEEVENTF_ABSOLUTE ditentukan, dx dan dy berisi koordinat absolut yang dinormalisasi antara 0 dan 65.535. Prosedur peristiwa memetakan koordinat ini ke permukaan tampilan. Peta koordinat (0,0) ke sudut kiri atas permukaan tampilan, peta (65535.65535) ke sudut kanan bawah.
Jika nilai MOUSEEVENTF_ABSOLUTE tidak ditentukan, dx dan dy menentukan gerakan relatif dari saat peristiwa mouse terakhir dihasilkan (posisi terakhir yang dilaporkan). Nilai positif berarti mouse bergerak ke kanan (atau ke bawah); nilai negatif berarti mouse bergerak ke kiri (atau ke atas).
Gerakan mouse relatif tunduk pada pengaturan untuk kecepatan mouse dan tingkat akselerasi. Pengguna akhir menetapkan nilai-nilai ini menggunakan aplikasi Mouse di Panel Kontrol. Aplikasi mendapatkan dan mengatur nilai-nilai ini dengan fungsi SystemParametersInfo .
Sistem menerapkan dua tes ke gerakan mouse relatif yang ditentukan saat menerapkan akselerasi. Jika jarak yang ditentukan di sepanjang sumbu x atau y lebih besar dari nilai ambang mouse pertama, dan tingkat akselerasi mouse bukan nol, sistem operasi menggandakan jarak. Jika jarak yang ditentukan di sepanjang sumbu x atau y lebih besar dari nilai ambang tetikus kedua, dan tingkat akselerasi mouse sama dengan dua, sistem operasi menggandakan jarak yang dihasilkan dari penerapan uji ambang pertama. Dengan demikian, sistem operasi dapat mengalikan gerakan mouse yang relatif ditentukan di sepanjang sumbu x atau y hingga empat kali.
Setelah akselerasi diterapkan, sistem menskalakan nilai yang dihasilkan oleh kecepatan mouse yang diinginkan. Kecepatan mouse dapat berkisar dari 1 (paling lambat) hingga 20 (tercepat) dan mewakili berapa banyak penunjuk bergerak berdasarkan jarak mouse bergerak. Nilai defaultnya adalah 10, yang tidak menghasilkan modifikasi tambahan pada gerakan mouse.
Fungsi mouse_event digunakan untuk mensintesis peristiwa mouse oleh aplikasi yang perlu melakukannya. Ini juga digunakan oleh aplikasi yang perlu mendapatkan lebih banyak informasi dari mouse daripada posisi dan status tombolnya. Misalnya, jika produsen tablet ingin meneruskan informasi berbasis pena ke aplikasinya sendiri, ia dapat menulis DLL yang berkomunikasi langsung ke perangkat keras tablet, mendapatkan informasi tambahan, dan menyimpannya dalam antrean. DLL kemudian memanggil mouse_event dengan tombol standar dan data posisi x/y, bersama dengan, dalam parameter dwExtraInfo , beberapa pointer atau indeks ke informasi tambahan yang diantrekan. Ketika aplikasi membutuhkan informasi tambahan, aplikasi memanggil DLL dengan pointer atau indeks yang disimpan di dwExtraInfo, dan DLL mengembalikan informasi tambahan.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows 2000 Professional [hanya aplikasi desktop] |
Server minimum yang didukung | Windows 2000 Server [hanya aplikasi desktop] |
Target Platform | Windows |
Header | winuser.h (termasuk Windows.h) |
Pustaka | User32.lib |
DLL | User32.dll |
Lihat juga
Konseptual
Sumber Daya Lain
Referensi