This message results when a WM_KEYUP and a WM_KEYDOWN message are translated. It contains the value of the keyboard key being pressed or released.
Parameter | Description |
wParam | Contains the value of the key. | ||
lParam | Contains the repeat count, scan code, key-transition code, previous key state, and context code, as shown in the following list: | ||
Bit | Value | ||
0–15 (low-order word) | Repeat count (the number of times the key stroke is repeated as a result of the user holding down the key). | ||
16–23 (low byte of high-order word) | Scan code (OEM-dependent value). | ||
24 | Extended key, such as a function key or a key on the numeric keypad (1 if it is an extended key). | ||
25–26 | Not used. | ||
27–28 | Used internally by Windows. | ||
29 | Context code (1 if the ALT key is held down while the key is pressed, 0 otherwise). | ||
30 | Previous key state (1 if the key is down before the message is sent, 0 if the key is up). | ||
31 | Transition state (1 if the key is being released, 0 if the key is being pressed). |
Since there is not necessarily a one-to-one correspondence between keys pressed and character messages generated, the information in the high-order word of the lParam parameter is generally not useful to applications. The information in the high-order word applies only to the most recent WM_KEYUP or WM_KEYDOWN message that precedes the posting of the character message.
For IBMÒ Enhanced 101- and 102-key keyboards, enhanced keys are the right ALT and the right CONTROL keys on the main section of the keyboard; the INSERT, DELETE, HOME, END, PAGE UP, PAGE DOWN and DIRECTION keys in the clusters to the left of the numeric key pad; and the divide (/) and ENTER keys in the numeric key pad. Some other keyboards may support the extended-key bit in the lParam parameter.