Peristiwa Sistem dan Pesan Mouse

Aplikasi Anda menggabungkan desain optimal dan penggunaan pena tablet dengan mengirim pesan mouse Microsoft Windows dan peristiwa sistem. Aplikasi menerima kedua rangkaian peristiwa untuk setiap gerakan atau tindakan pena. Aplikasi kemudian memilih peristiwa yang sesuai untuk digunakan berdasarkan konteks tindakan. Pesan mouse Windows bekerja dengan baik untuk menunjuk dan memilih aktivitas, dan Anda harus menggunakannya untuk aktivitas yang melibatkan interaksi dengan elemen antarmuka pengguna (UI). Peristiwa pena bekerja dengan baik untuk aplikasi tinta real time, tindakan pena, dan tulisan tangan.

Catatan

Peristiwa pena dan pesan mouse dikirim ke aplikasi, terlepas dari apakah pena atau mouse digunakan.

Membedakan Input Pena dari Mouse dan Touch

Saat aplikasi Anda menerima pesan mouse (seperti WM_LBUTTONDOWN), aplikasi mungkin memanggil fungsi GetMessageExtraInfo untuk mengevaluasi apakah pesan berasal dari pena atau perangkat mouse.

Nilai yang dikembalikan dari GetMessageExtraInfo perlu diperiksa masker terhadap 0xFFFFFF00, lalu dibandingkan dengan 0xFF515700. Definisi berikut dapat memperjelas hal ini:

#define MI_WP_SIGNATURE 0xFF515700
#define SIGNATURE_MASK 0xFFFFFF00
#define IsPenEvent(dw) (((dw) & SIGNATURE_MASK) == MI_WP_SIGNATURE

Jika perbandingannya benar, maka pesan mouse ini dihasilkan oleh pena PC Tablet atau layar sentuh. Dalam semua kasus lain, Anda dapat berasumsi bahwa pesan ini dihasilkan oleh perangkat mouse.

8 bit yang lebih rendah yang dikembalikan dari GetMessageExtraInfo adalah variabel. Dari bit tersebut, 7 (7 lebih rendah, ditutupi oleh 0x7F) digunakan untuk mewakili ID kursor, nol untuk mouse atau nilai variabel untuk ID pena. Selain itu, di Windows Vista, bit kedelapan, ditutupi oleh 0x80, digunakan untuk membedakan input sentuhan dari input pena (0 = pena, 1 = sentuhan).

Lihat Input Perangkat Penunjuk dan Input Sentuh untuk informasi selengkapnya.

Gerakan Sistem yang Didukung

Tabel berikut mencantumkan gerakan sistem yang saat ini disertakan dalam Windows XP Tablet PC Edition, merinci tindakan pena dan peristiwa sistem yang sesuai, dan menunjukkan bagaimana hubungannya dengan tindakan mouse tradisional.

Gerakan pena Tindakan mouse Deskripsi gerakan pena Pesan peristiwa Pesan mouse Perilaku dalam aplikasi berbasis Windows
Ketuk
Kiri
Ketuk layar sekali dengan pena.
ISG_TAP dikirim saat pena diangkat.
WM_LBUTTONDOWN dan WM_LBUTTONUP dikirim saat pena diangkat.
Pilih perintah dari menu atau toolbar, ambil tindakan jika perintah dipilih, atur titik penyisipan (IP), tampilkan umpan balik pilihan.
Ketuk dua kali
Klik dua kali
Ketuk layar dua kali berturut-turut dengan cepat.
ISG_DOUBLETAP dikirim dengan ketukan kedua (turun). ISG_TAP peristiwa yang dikirim pada ketukan pertama.
WM_LBUTTONDBLCLK dikirim dengan ketukan kedua (turun). WM_LBUTTONDOWN dan WM_LBUTTONUP dikirim dengan ketukan pertama (ke atas) seperti untuk satu ketukan.
Pilih kata, buka file atau folder.
Tekan dan tahan
Klik kanan
Ketuk layar dan tahan hingga ikon mouse muncul, lalu angkat pena untuk menampilkan menu pintasan. Aplikasi dapat memilih untuk melakukan tindakan yang berbeda dari menampilkan menu klik kanan saat pena diangkat.
ISG_HOLDENTER dikirim ketika pena sudah turun cukup lama. ISG_RIGHTTAP dikirim saat pena diangkat dan klik kanan terjadi.
WM_RBUTTONDOWN dan WM_RBUTTONUP dikirim saat klik kanan terjadi (saat pena diangkat).
Perlihatkan menu pintasan.
Penahanan
Kiri
Ketuk layar dan tahan hingga ikon mouse muncul dan menghilang. Pengguna cenderung melakukan ini ketika mereka secara tidak sengaja menekan dan menahan dan ingin kembali untuk hanya mengetuk.
ISG_TAP dikirim saat pena diangkat.
WM_LBUTTONDOWN dan WM_LBUTTONUP dikirim saat pena diangkat.
Klik kiri untuk waktu yang lama. Tidak ada setara mouse. Ini adalah fallback ketika pengguna melakukan press-and-hold untuk waktu yang lama. Peristiwa kembali menjadi ketukan.
Drag
Seret kiri
Ketuk layar untuk memilih objek yang akan dipindahkan, lalu seret setelah objek dipilih.
ISG_DRAG dikirim saat seret dimulai.
WM_LBUTTONDOWN dikirim saat seret dimulai, diikuti oleh serangkaian pesan pemindahan mouse, dan diikuti oleh peristiwa WM_LBUTTONUP.
Seret-pilih, seperti di Microsoft Word saat dimulai dengan IP; pilih beberapa kata; seret, seperti saat menyeret objek di Windows; Bergulir.
Tekan dan tahan diikuti dengan seret
Seret kanan
Ketuk layar untuk memilih objek yang akan dipindahkan. Tahan hingga ikon mouse muncul, lalu seret untuk memindahkan objek. Angkat pena untuk menampilkan menu pintasan.
ISG_HOLDENTER dikirim ketika pena telah turun untuk beberapa waktu. ISG_RIGHTDRAG dikirim saat seret dimulai.
WM_RBUTTONDOWN dikirim saat seret dimulai, diikuti oleh serangkaian pesan pemindahan mouse, diikuti oleh peristiwa WM_RBUTTONUP.
Seret, seperti saat menyeret objek atau pilihan diikuti oleh menu konteks.
Pena melayang
Mouse melayang
Tahan pena stabil pada jarak yang kecil dari layar.
ISG_HOVERENTER kejadian yang dikirim pada awalnya. Saat interval hover selesai, ISG_HOVERLEAVEis dikirim.
Tidak ada pesan mouse yang setara.
Perlihatkan TipsAlat, efek roll-over, dan perilaku mouse hover lainnya.
Goyangan di udara
Perlihatkan Panel Input PC Tablet. Tidak ada mouse yang setara.
Pindahkan pena dengan cepat dari sisi ke sisi, memegang ujung di atas, tetapi dalam jangkauan, layar.
Peristiwa tidak diteruskan ke aplikasi.
Tidak ada pesan mouse yang setara.
Baru, khusus untuk PC Tablet.

 

Menentukan Stylus dan Interaksi Sentuh

Secara default, jendela Anda akan menerima semua peristiwa gerakan sistem dan menggunakan model interaksi default. Beberapa bagian model ini dapat mengganggu aplikasi Anda, sehingga Anda dapat menonaktifkannya secara selektif dengan menanggapi pesan WM_TABLET_QUERYSYSTEMGESTURESTATUS di WndProc Anda.