WM_SYSKEYUP
This message is sent when the user releases a key that was pressed while the ALT key was held down. It also occurs when no window currently has the input focus; in this case, the WM_SYSKEYUP 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 released. |
|
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. |
Parameter |
Description |
|
|
Bit |
Value |
|
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_SYSKEYUP messages, the key-transition bit (bit 31) is 1. 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. |
|
Comments
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.
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.
For non-USA Enhanced 102-key keyboards, the right ALT key is handled as a CONTROL-ALT key. The following shows the sequence of messages which result when the user presses and releases this key:
Order |
Message |
Virtual-key code (lParam) |
1 |
WM_KEYDOWN |
VK_CONTROL |
2 |
WM_KEYDOWN |
VK_MENU |
3 |
WM_KEYUP |
VK_CONTROL |
4 |
WM_SYSKEYUP |
VK_MENU |