pesan WM_KEYDOWN
Diposting ke jendela dengan fokus keyboard saat tombol nonsystem ditekan. Tombol nonsystem adalah tombol yang ditekan saat tombol ALT tidak ditekan.
#define WM_KEYDOWN 0x0100
Parameter
-
wParam
-
Kode kunci virtual dari kunci nonsystem. Lihat Kode Kunci Virtual.
-
lParam
-
Jumlah berulang, kode pemindaian, bendera extended-key, kode konteks, bendera status kunci sebelumnya, dan bendera status transisi, seperti yang ditunjukkan berikut ini.
Bit Makna 0-15 Jumlah pengulangan untuk pesan saat ini. Nilainya adalah berapa kali penekanan tombol di-autorepeated sebagai akibat dari pengguna yang menahan kunci. Jika penekanan tombol ditahan cukup lama, beberapa pesan akan dikirim. Namun, jumlah pengulangan tidak kumulatif. 16-23 Kode pemindaian. Nilainya tergantung pada OEM. 24 Menunjukkan apakah kunci adalah kunci yang diperluas, seperti tombol ALT dan CTRL kanan yang muncul pada keyboard 101- atau 102-tombol yang disempurnakan. Nilainya adalah 1 jika merupakan kunci yang diperluas; jika tidak, itu adalah 0. 25-28 Dipesan; jangan gunakan. 29 Kode konteks. Nilainya selalu 0 untuk pesan WM_KEYDOWN . 30 Status kunci sebelumnya. Nilainya adalah 1 jika kunci tidak berfungsi sebelum pesan dikirim, atau nol jika kunci naik. 31 Status transisi. Nilainya selalu 0 untuk pesan WM_KEYDOWN . Untuk detail selengkapnya, lihat Bendera Pesan Keystroke.
Menampilkan nilai
Aplikasi harus mengembalikan nol jika memproses pesan ini.
Contoh
LRESULT CALLBACK HostWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)
{
case WM_KEYDOWN:
if (wParam == VK_ESCAPE)
{
if (isFullScreen)
{
GoPartialScreen();
}
}
break;
// ...
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
return 0;
}
Contoh dari Sampel Klasik Windows di GitHub.
Keterangan
Jika tombol F10 ditekan, fungsi DefWindowProc mengatur bendera internal. Ketika DefWindowProc menerima pesan WM_KEYUP , fungsi memeriksa apakah bendera internal diatur dan, jika demikian, mengirim pesan WM_SYSCOMMAND ke jendela tingkat atas. Parameter WM_SYSCOMMAND pesan diatur ke SC_KEYMENU.
Karena fitur autorepeat, lebih dari satu pesan WM_KEYDOWN dapat diposting sebelum pesan WM_KEYUP diposting. Status kunci sebelumnya (bit 30) dapat digunakan untuk menentukan apakah pesan WM_KEYDOWN menunjukkan transisi turun pertama atau transisi berulang.
Untuk keyboard 101 dan 102 tombol yang disempurnakan, tombol yang diperluas adalah tombol ALT dan CTRL yang tepat di bagian utama keyboard; tombol INS, DEL, HOME, END, PAGE UP, PAGE DOWN, dan panah di kluster di sebelah kiri keypad numerik; dan tombol bagi (/) dan ENTER di keypad numerik. Keyboard lain dapat mendukung bit extended-key dalam parameter lParam .
Aplikasi harus meneruskan wParam ke TranslateMessage tanpa mengubahnya.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung |
Windows 2000 Professional [hanya aplikasi desktop] |
Server minimum yang didukung |
Windows 2000 Server [hanya aplikasi desktop] |
Header |
|