Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Menentukan Kekunci Papan Kekunci Mana Yang Sedang Ditekan dalam Borang Windows?
Cara mengesan kekunci yang sedang ditekan dalam Borang Windows dengan cekap
Dalam pembangunan Windows Forms, gunakan kelas Kursor untuk mendapatkan kedudukan masa nyata kursor dengan mudah. Walau bagaimanapun, menentukan keadaan semasa kekunci papan kekunci adalah agak rumit. Sebagai contoh, bolehkah kita menentukan sama ada kekunci Shift sedang ditekan? Dan, bolehkah kita mengelakkan pemantauan yang membosankan bagi setiap acara KeyDown dan KeyUp?
Penyelesaian:
Nasib baik, adalah mungkin untuk mengesan kekunci yang ditekan tanpa menjejaki peristiwa dengan teliti. Untuk menentukan sama ada kekunci Shift ditekan (tidak kira sama ada kekunci pengubah suai lain ditekan pada masa yang sama), anda boleh menggunakan coretan kod berikut:
<code class="language-c#">if ((Control.ModifierKeys & Keys.Shift) != 0)</code>
Kaedah ini menilai sama ada hasil operasi bitwise AND Control.ModifierKeys and Keys.Shift values bukan sifar. Jika hasilnya benar, anda boleh membuat kesimpulan bahawa kekunci Shift telah ditekan.
Untuk memastikan hanya kekunci Shift ditekan dan tiada kekunci pengubah suai lain yang aktif, semakan boleh diperbaiki seperti berikut:
<code class="language-c#">if (Control.ModifierKeys == Keys.Shift)</code>
Jika anda bekerja dalam kelas yang mewarisi Kawalan (seperti borang), anda boleh meninggalkan rujukan Kawalan untuk menjadikan kod lebih bersih.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menentukan Kekunci Papan Kekunci Mana Yang Sedang Ditekan dalam Borang Windows?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!