Bagikan melalui


Gambaran Umum Arsitektur

Gambaran umum arsitektur ini memberikan konteks untuk Windows Touch API untuk Tablet dan Teknologi Sentuh dan menjelaskan bagaimana kecocokannya dengan arsitektur Windows 7 yang lebih besar.

Pesan untuk Input dan Gerakan Sentuh Windows

Fitur olahpesan untuk Windows Touch diaktifkan dengan mendengarkan dan menafsirkan pesan selama eksekusi. Ilustrasi berikut menunjukkan bagaimana pesan dihasilkan dari perangkat keras dan dikirim ke aplikasi oleh Windows 7.

ilustrasi yang menunjukkan bagaimana windows 7 mengirim pesan dari perangkat keras multitouch ke aplikasi

Di kolom paling kiri ilustrasi, perangkat keras sensitif sentuhan menerima input dari pengguna. Driver kemudian berkomunikasi antara perangkat keras dan OS. Selanjutnya, OS menghasilkan pesan WM_TOUCH atau WM_GESTURE yang kemudian dikirim ke HWND aplikasi. Aplikasi kemudian memperbarui UI yang diberikan informasi yang dienkapsulasi dalam pesan.

Aplikasi menerima gerakan secara default. Kecuali aplikasi mendaftar untuk pesan input Windows Touch dengan fungsi RegisterTouchWindow , pemberitahuan untuk gerakan (WM_GESTURE pesan) dibuat oleh Windows dan dikirim ke jendela aplikasi tersebut. Jika Jendela aplikasi mendaftar untuk menerima pesan sentuhan, pemberitahuan untuk input Windows Touch (WM_TOUCH pesan) dikirim ke jendela aplikasi tersebut. Pesan Sentuhan dan gerakan Windows serakah dalam arti setelah sentuhan dibuat atau gerakan dimulai pada Jendela aplikasi, semua pesan dikirim ke aplikasi tersebut sampai gerakan selesai atau sentuhan utama selesai.

Untuk dukungan warisan, Windows menginterpretasikan WM_GESTURE pesan jika pesan tersebut di-bubbled dan kemudian akan MENGIRIM atau MEMPOS PESAN yang sesuai yang memetakan ke gerakan. Untuk menghindari melanggar dukungan warisan, pastikan Anda meneruskan pesan WM_GESTURE menggunakan DefWindowProc. Informasi lebih lanjut tentang dukungan warisan dapat ditemukan di bagian Gambaran Umum Windows Touch Gestures.

Manipulasi dan Inertia

Programmer Windows Touch harus dapat menafsirkan gerakan dari berbagai sumber dengan cara yang bermakna untuk gerakan yang terjadi. Microsoft menyediakan API manipulasi untuk melakukan perhitungan ini. Manipulasi pada dasarnya adalah gerakan dengan nilai yang terkait dengannya yang menggambarkan seluruh isyarat. Setelah Anda menyambungkan data input ke prosesor manipulasi, Anda dapat mengambil informasi yang berkaitan dengan tindakan yang dilakukan pengguna pada objek. Gambar berikut menunjukkan salah satu cara Anda dapat menggunakan manipulasi.

ilustrasi memperlihatkan pesan sentuh jendela yang diteruskan ke prosesor manipulasi objek, yang menangani peristiwa dengan antarmuka -imanipulationevents

Di kiri atas ilustrasi, pengguna telah menyentuh layar, yang membuat pesan sentuhan. Pesan-pesan ini berisi koordinat x dan koordinat y yang digunakan untuk menentukan objek yang sedang difokuskan. Objek dalam fokus berisi prosesor manipulasi. Selanjutnya, pada pesan WM_TOUCH dengan bendera TOUCHEVENTF_UP , objek dalam fokus pengguna dipilih, prosesor manipulasi dirujuk, dan pesan dikirim ke prosesor manipulasi. Pesan WM_TOUCH berikutnya yang terkait dengan kontak ini dikirim ke prosesor manipulasi hingga pesan WM_TOUCH dengan bendera TOUCHEVENTF_UP diterima dan objek yang dipilih didereferensikan. Di bagian kanan bawah ilustrasi, sink peristiwa manipulasi yang mengimplementasikan antarmuka _IManipulationEvents digunakan untuk menangani peristiwa manipulasi, yang dinaikkan saat pesan sentuhan sedang dibuat. Sink peristiwa dapat melakukan pembaruan pada antarmuka berdasarkan peristiwa manipulasi saat terjadi.

Dalam aplikasi Windows Touch, adalah umum untuk menggabungkan fisika sederhana sehingga objek dengan lancar berhenti, daripada tiba-tiba berhenti ketika mereka tidak lagi disentuh. Microsoft menyediakan API Inertia untuk melakukan perhitungan untuk fisika sederhana ini sehingga aplikasi Anda dapat bereaksi dengan cara yang mirip dengan aplikasi lain. Ini juga menghemat upaya yang diperlukan untuk membuat fungsionalitas fisika yang kuat. Gambar berikut menunjukkan bagaimana Anda dapat menggunakan inertia.

ilustrasi yang menunjukkan pesan sentuh jendela yang diteruskan ke antarmuka iinertiaprocessor objek, yang meningkatkan peristiwa dengan antarmuka -imanipulationevents

Perhatikan kesamaan antara inertia dan manipulasi. Satu-satunya perbedaan antara keduanya adalah bahwa dalam kasus inertia, pesan yang ditafsirkan diserahkan ke prosesor inertia daripada prosesor manipulasi dan prosesor inertia menimbulkan peristiwa. Di kiri atas ilustrasi, pada pesan WM_TOUCH dengan bendera TOUCHEVENTF_UP , pesan sentuh digunakan untuk mengidentifikasi objek yang berfokus yang berisi prosesor inertia dan prosesor manipulasi. Pesan WM_TOUCH berikutnya dikirim ke prosesor manipulasi dan prosesor manipulasi melakukan pembaruan pada UI aplikasi. Setelah manipulasi selesai, nilai kecepatan dari manipulasi digunakan untuk menyiapkan prosesor inertia. Seperti yang diilustrasikan di kolom tengah, metode Proses atau ProcessTime dipanggil pada antarmuka IInertiaProcessor menggunakan timer atau perulangan lain dalam utas terpisah sampai panggilan menunjukkan prosesor selesai diproses. Meskipun panggilan ini dilakukan, peristiwa manipulasi dinaikkan, yang ditangani oleh sink peristiwa manipulasi berdasarkan antarmuka _IManipulationEvents . Di bagian kanan bawah ilustrasi, sink peristiwa ini kemudian melakukan pembaruan pada UI aplikasi berdasarkan peristiwa manipulasi ketika terjadi melalui penanganan aktivitas di sink peristiwa.

Panduan Pemrograman