Bagikan melalui


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
Winuser.h (termasuk Windows.h)

Lihat juga