windows_programming_notes.nbk: Home | Index | Next Page: WM_TCARD | Previous Page: WM_SYSKEYDOWN
The WM_SYSKEYUP message is posted to the window with the keyboard focus 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 keyboard 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.
A window receives this message through its WindowProc function.
LRESULT CALLBACK WindowProc( HWND hwnd, // handle to window UINT uMsg, // WM_SYSKEYUP WPARAM wParam, // virtual-key code LPARAM lParam // key data );
An application should return zero if it processes this message.
The DefWindowProc function sends a WM_SYSCOMMAND message to the top-level window if the F10 key or the ALT key was released. The wParam parameter of the message is set to SC_KEYMENU.
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 character-key message. This allows accelerator keys to be used with the active window even if the active window does not have the keyboard focus.
For enhanced 101- and 102-key keyboards, extended keys are the right ALT and CTRL keys on the main section of the keyboard; the INS, DEL, HOME, END, PAGE UP, PAGE DOWN, and arrow keys in the clusters to the left of the numeric keypad; and the divide (/) and ENTER keys in the numeric keypad. Other keyboards may support the extended-key bit in the lParam parameter.
For non-U.S. enhanced 102-key keyboards, the right ALT key is handled as a CTRL+ALT key. The following table shows the sequence of messages that result when the user presses and releases this key.
Message Virtual-key code WM_KEYDOWN VK_CONTROL WM_KEYDOWN VK_MENU WM_KEYUP VK_CONTROL WM_SYSKEYUP VK_MENU
Windows NT/2000 or later: Requires Windows NT 3.1 or later. Windows 95/98/Me: Requires Windows 95 or later. Header: Declared in Winuser.h; include Windows.h.
windows_programming_notes.nbk: Home | Index | Next Page: WM_TCARD | Previous Page: WM_SYSKEYDOWN
Notebook exported on Monday, 7 July 2008, 18:56:50 PM Eastern Daylight Time