Pemecahan Masalah Aplikasi
Bagian ini memberikan solusi untuk masalah umum.
Pemecahan Masalah Umum
Category | Deskripsi |
---|---|
Masalah | Saya menjalankan fitur Windows Server 2008 dan Windows Touch tidak berfungsi. |
Penyebab | Anda belum mengaktifkan Pengalaman Desktop. |
Solution | Buka alat administratif Manajer Server: klik Mulai, arahkan ke Alat Administratif, lalu klik Manajer Server. Klik item Fitur di kolom kiri. Klik Tambahkan Fitur di bagian Fitur . Pilih Pengalaman Desktop, klik Berikutnya, lalu klik Instal. |
Category | Deskripsi |
---|---|
Masalah | Setiap kali saya menggerakkan jari saya dengan cepat di seluruh aplikasi saya, panah muncul dan gerakan atau manipulasi saya tidak mendaftar dengan benar. |
Penyebab | Mengaktifkan berkedot saat Anda tidak membutuhkannya. |
Solution | Anda telah mengaktifkan berkedot ketika Anda ingin dinonaktifkan. Lihat Dukungan Warisan untuk Panning dengan Bilah Gulir untuk informasi tentang menonaktifkan jentik pena. |
Masalah | Saya tidak dapat membedakan antara input mouse dan input Windows Touch. | ||
Penyebab | Windows menghasilkan pesan mouse untuk dukungan warisan ketika pengguna mengklik layar. | ||
Solution | Anda dapat memanggil GetMessageExtraInfo untuk pesan WM_LBUTTONDOWN dan WM_LBUTTONUP untuk menentukan sumbernya. Kode berikut menunjukkan bagaimana hal ini dapat dilakukan.
|
Category | Deskripsi |
---|---|
Masalah | Bagaimana cara menjalankan aplikasi Microsoft PixelSense di Windows 7? |
Penyebab | Windows Touch dan Microsoft PixelSense tidak kompatibel. |
Solution | Anda harus menargetkan platform Windows 7 atau platform Microsoft PixelSense. |
Pemecahan Masalah Manipulasi dan Inertia
Category | Deskripsi |
---|---|
Masalah | Aplikasi saya membeku tanpa alasan. Saya mendapatkan pelanggaran akses saat menginisialisasi antarmuka objek saya. |
Penyebab | Kehilangan panggilan ke CoInitialize saat menggunakan antarmuka IManipulationProcessor atau IInertiaProcessor. |
Solution | Ini dapat disebabkan oleh membuat instans objek Windows Touch Component Object Model (COM) tanpa memanggil CoInitialize. Ini kadang-kadang terjadi ketika Anda mengonversi proyek dari menggunakan gerakan menjadi menggunakan manipulasi atau antarmuka inertia. |
Category | Deskripsi |
---|---|
Masalah | Objek saya berputar dengan tidak tepat ketika sedang diterjemahkan. Rotasi satu jari tidak berfungsi dengan benar. |
Penyebab | Mengatur pivot secara tidak benar pada objek. |
Solution | Anda tidak menyiapkan titik pivot manipulasi dengan benar. Atur properti PivotPointX dan PivotPointY ke tengah objek atau titik yang ingin Anda putar, dan atur properti PivotRadius ke radius objek Anda. |
Pemecahan Masalah Input Sentuhan Windows
Category | Deskripsi |
---|---|
Masalah | Setelah saya menangani pesan WM_TOUCH , saya berhenti mendapatkan umpan balik batas. |
Penyebab | Mengkonsumsi pesan WM_TOUCH tanpa menanganinya. |
Solution | Anda mungkin menggunakan pesan Windows Touch tanpa meneruskannya ke DefWindowProc, yang akan mengakibatkan perilaku yang tidak terduga. Periksa Memulai Pesan Sentuh Windows untuk informasi selengkapnya tentang cara menangani pesan WM_TOUCH dengan benar. |
Masalah | Saya termasuk windows.h, tetapi masih mengatakan bahwa WM_TOUCH tidak ditentukan. | ||
Penyebab | Versi Windows di Targetver.h salah. | ||
Solution | Anda belum mengatur versi Windows yang benar dalam proyek Anda. Kode berikut mengilustrasikan versi Windows yang diatur dengan benar untuk Windows Touch di Windows 7.
|
Masalah | Input sentuhan saya koordinat x dan koordinat y tampaknya tidak valid. Mereka adalah nilai yang lebih besar dari yang saya harapkan atau nilai negatif. | ||
Penyebab | Anda mungkin perlu mengonversi titik sentuh Anda menjadi piksel, atau Anda mungkin perlu mengonversi koordinat layar. | ||
Solution | Pastikan Anda memanggil TOUCH_COORD_TO_PIXEL dan ScreenToClient. Kode berikut menunjukkan cara melakukannya.
Catatan: |
Category | Deskripsi |
---|---|
Masalah | Saya tidak melihat pesan WM_TOUCH, tetapi saya tahu bahwa Windows Touch berfungsi karena saya melihat pesan WM_GESTURE. |
Penyebab | Kehilangan panggilan ke RegisterTouchWindow. |
Solution | pesan WM_TOUCH dan WM_GESTURE saling eksklusif. Jika Anda tidak memanggil RegisterTouchWindow, Anda hanya akan menerima pesan WM_GESTURE. |
Category | Deskripsi |
---|---|
Masalah | Saya melihat penundaan kecil sejak saya menyentuh jari saya ke bawah ketika saya mendapatkan input dalam aplikasi saya. |
Penyebab | Penolakan telapak tangan menyebabkan keterlambatan input. |
Solution | Jika TWF_WANTPALM diatur dalam panggilan ke RegisterTouchWindow, penolakan telapak tangan diaktifkan. Ini menyebabkan penundaan kecil (100 ms) sementara perangkat lunak menguji apakah input berasal dari jari, pena, atau telapak tangan pengguna. Nonaktifkan penolakan telapak tangan dengan memanggil RegisterTouchWindow dengan bendera TWF_WANTPALM dihapus. |
Pemecahan Masalah Windows Touch Gestures
Category | Deskripsi |
---|---|
Masalah | Setelah menangani pesan WM_GESTURE , saya berhenti mendapatkan umpan balik batas. Atau, gerakan yang bekerja sebelumnya tidak berfungsi sekarang. |
Penyebab | Mengkonsumsi pesan WM_GESTURE tanpa menanganinya. |
Solution | Anda mungkin menggunakan pesan Windows Touch tanpa meneruskannya ke DefWindowProc, yang akan mengakibatkan perilaku yang tidak terduga. Periksa Memulai Gerakan Windows untuk informasi selengkapnya tentang cara menangani pesan WM_GESTURE dengan benar. |
Category | Deskripsi |
---|---|
Masalah | Saya tidak melihat pesan WM_GESTURE, tetapi saya tahu bahwa Windows Touch berfungsi karena saya melihat pesan WM_TOUCH. |
Penyebab | Memanggil RegisterTouchWindow. |
Solution | pesan WM_TOUCH dan WM_GESTURE saling eksklusif. Jika Anda memanggil RegisterTouchWindow, Anda tidak akan menerima pesan WM_GESTURE . |
Masalah | Saya tidak melihat semua gerakan yang saya harapkan untuk melihat. Misalnya, saya melihat gerakan dengan pengidentifikasi GID_PAN tetapi tidak GID_ROTATE. | ||
Penyebab | Beberapa gerakan, seperti gerakan putar, tidak diaktifkan secara default. | ||
Solution | Anda perlu memanggil SetGestureConfig saat menerima pesan WM_GESTURENOTIFY seperti yang dijelaskan dalam referensi WM_GESTURENOTIFY, atau Anda perlu menambahkan handler untuk pesan WM_GESTURENOTIFY. Kode berikut menunjukkan bagaimana handler dapat diimplementasikan untuk mengaktifkan dukungan untuk rotasi.
Untuk contoh konfigurasi gerakan umum lainnya, lihat SetGestureConfig. |
Category | Deskripsi |
---|---|
Masalah | Bilah gulir kustom di aplikasi saya tidak menggulir saat saya melakukan gerakan pan. |
Penyebab | Handler yang hilang untuk pesan WM_*SCROLL yang benar. |
Solution | Anda tidak menangani semua pesan WM_*SCROLL di bilah gulir kustom Anda. Disarankan agar Anda menangani pesan WM_GESTURE daripada mempertahankan fungsionalitas bilah gulir kustom melalui dukungan warisan. Anda perlu mendukung pesan sebagaimana dirinci di bagian Dukungan Warisan untuk Panning dengan bilah Gulir. |
Category | Deskripsi |
---|---|
Masalah | Saya mendapatkan keterlambatan untuk gerakan. |
Penyebab | Flicks mungkin menyebabkan keterlambatan untuk gerakan. |
Solution | Flicks dapat menyebabkan penundaan berapa lama waktu yang dibutuhkan aplikasi Anda untuk menerima pesan WM_GESTURE. Lihat Dukungan Warisan untuk Panning dengan Bilah Gulir untuk informasi tentang menonaktifkan berkedip. |
Topik terkait
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk