Tentang Kontrol Hot Key
Kontrol tombol panas adalah jendela yang memungkinkan pengguna memasukkan kombinasi penekanan tombol untuk digunakan sebagai kunci panas. Tombol panas adalah kombinasi tombol yang dapat ditekan pengguna untuk melakukan tindakan dengan cepat. Misalnya, pengguna dapat membuat tombol pintas yang mengaktifkan jendela tertentu dan membawanya ke bagian atas urutan z. Kontrol hot key menampilkan pilihan pengguna dan memastikan bahwa pengguna memilih kombinasi kunci yang valid. Cuplikan layar berikut menunjukkan bagaimana kontrol tombol panas muncul dalam kotak dialog setelah pengguna menekan tombol Alt.
Menggunakan Kontrol Hot Key
Saat pengguna memasukkan kombinasi kunci untuk digunakan sebagai kunci panas, nama kunci muncul di kontrol tombol panas. Kombinasi kunci dapat terdiri dari tombol pengubah (seperti CTRL, ALT, atau SHIFT) dan kunci yang menyertainya (seperti kunci karakter, tombol panah, tombol fungsi, dan sebagainya).
Setelah pengguna memilih kombinasi kunci, aplikasi mengambil kombinasi kunci dari kontrol kunci panas dan menggunakannya untuk menyiapkan kunci panas di sistem. Informasi yang diambil dari kontrol tombol pintas mencakup penanda yang menunjukkan tombol pengubah dan kode kunci virtual tombol yang menyertainya.
Aplikasi dapat menggunakan informasi yang disediakan oleh kontrol hot key untuk menyiapkan hot key global atau hot key khusus utas. Tombol pintas global dikaitkan dengan jendela tertentu; ini memungkinkan pengguna untuk mengaktifkan jendela tersebut dari bagian mana pun dari sistem. Aplikasi menetapkan tombol pintas global dengan menggunakan pesan WM_SETHOTKEY. Setiap kali pengguna menekan tombol pintas global, jendela yang ditentukan di WM_SETHOTKEY akan menerima pesan WM_SYSCOMMAND yang menentukan nilai SC_HOTKEY. Pesan ini mengaktifkan jendela yang menerimanya. Hot key tetap valid sampai aplikasi yang memanggil WM_SETHOTKEY ditutup.
Hot key khusus utas menghasilkan pesan WM_HOTKEY yang dikirimkan ke awal utas tertentu sehingga dihapus oleh siklus berikutnya dari perulangan pesan. Aplikasi menetapkan hot key khusus utas menggunakan fungsi RegisterHotKey.
Pesan Kontrol Hot Key
Setelah membuat kontrol hotkey, aplikasi berinteraksi dengannya dengan menggunakan tiga pesan: HKM_SETRULES, HKM_SETHOTKEY, dan HKM_GETHOTKEY.
Aplikasi dapat mengirim pesan HKM_SETRULES untuk menentukan sekumpulan kombinasi tombol CTRL, ALT, dan SHIFT yang dianggap sebagai tombol panas yang tidak valid. Jika aplikasi menentukan kombinasi kunci yang tidak valid, aplikasi juga harus menentukan kombinasi pengubah default untuk digunakan saat pengguna memilih kombinasi yang tidak valid. Ketika pengguna memasukkan kombinasi yang tidak valid, sistem melakukan operasi OR logis pada kombinasi yang tidak valid dan kombinasi default. Hasilnya dianggap sebagai kombinasi yang valid; ini dikonversi ke string dan ditampilkan dalam kontrol.
Pesan HKM_SETHOTKEY memungkinkan aplikasi untuk mengatur kombinasi tombol panas untuk kontrol kunci panas. Pesan ini juga biasanya digunakan saat kontrol tombol pintas dibuat.
Aplikasi menggunakan pesan HKM_GETHOTKEY untuk mengambil kode kunci virtual dan bendera pengubah tombol pintas yang dipilih oleh pengguna.
Pemberitahuan Kontrol Kunci Panas
Kontrol kunci panas tidak mengirim kode pemberitahuan apa pun melalui pesan WM_NOTIFY. Namun, ini akan mengirim pemberitahuan EN_CHANGE melalui pesan WM_COMMAND ketika pengguna mengubah konten kontrol.
Pemrosesan Pesan Tombol Pintas Default
Bagian ini menjelaskan pesan jendela yang ditangani oleh prosedur jendela untuk kelas jendela HOTKEY_CLASS yang telah ditentukan sebelumnya yang digunakan dengan kontrol tombol pintas.
Pesan | Pemrosesan dilakukan |
---|---|
WM_CHAR | Mengambil kode kunci virtual. |
WM_CREATE | Menginisialisasi kontrol hotkey, menghapus aturan hotkey apa pun, dan menggunakan font sistem. |
WM_ERASEBKGND | Menyembunyikan tanda sisipan, memanggil fungsi DefWindowProc, dan menampilkan tanda sisipan lagi. |
WM_GETDLGCODE | Mengembalikan kombinasi nilai DLGC_WANTCHARS dan DLGC_WANTARROWS. |
WM_GETFONT | Mengambil font. |
WM_KEYDOWN | Memanggil fungsiDefWindowProcjika kuncinya adalah ENTER, TAB, SPACE BAR, DEL, ESC, atau BACKSPACE. Jika kuncinya adalah SHIFT, CTRL, atau ALT, sistem akan memeriksa apakah kombinasi tersebut valid, dan jika benar, mengatur tombol pintas menggunakan kombinasi tersebut. Semua tombol lain diatur sebagai tombol pintas tanpa diperiksa validitasnya terlebih dahulu. |
WM_KEYUP | Mengambil kode kunci virtual. |
WM_KILLFOCUS | Menghancurkan tanda sisipan. |
WM_LBUTTONDOWN | Mengatur fokus ke jendela. |
WM_NCCREATE | Menetapkan gaya jendela WS_EX_CLIENTEDGE. |
WM_PAINT | Melukis kontrol tombol pintas. |
WM_SETFOCUS | Membuat dan memperlihatkan tanda sisipan. |
WM_SETFONT | Mengatur font. |
WM_SYSCHAR | Mengambil kode kunci virtual. |
WM_SYSKEYDOWN | Memanggil fungsiDefWindowProcjika kuncinya adalah ENTER, TAB, SPACE BAR, DEL, ESC, atau BACKSPACE. Jika tombolnya adalah SHIFT, CTRL, atau ALT, sistem memeriksa apakah kombinasi tersebut valid dan, jika ya, menetapkan tombol pintas menggunakan kombinasi tersebut. Semua tombol lain dikonfigurasikan sebagai tombol pintasan tanpa diperiksa validitasnya terlebih dahulu. |
WM_SYSKEYUP | Mengambil kode kunci virtual. |