This message is sent when the user holds down the ALT key and then presses another key. It also occurs when no window currently has the input focus; in this case, the WM_SYSKEYDOWN message is sent to the active window. The window that receives the message can distinguish between these two contexts by checking the context code in the lParam parameter.
Parameter | Description |
wParam | Contains the virtual-key code of the key being pressed. | ||
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 key pad (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). | ||
For WM_SYSKEYDOWN messages, the key-transition bit (bit 31) is 0. The context-code bit (bit 29) is 1 if the ALT key is down while the key is pressed; it is 0 if the message is sent to the active window because no window has the input focus. |
When the context code is zero, the message can be passed to the TranslateAccelerator function, which will handle it as though it were a normal key message instead of a system-key message. This allows accelerator keys to be used with the active window even if the active window does not have the input focus.
Because of auto-repeat, more than one WM_SYSKEYDOWN message may occur before a WM_SYSKEYUP message is sent. The previous key state (bit 30) can be used to determine whether the WM_SYSKEYDOWN message indicates the first down transition or a repeated down transition.
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.