This documentation is archived and is not being maintained.


The framework calls this member function when a nonsystem key is released.

afx_msg void OnKeyUp(
   UINT nChar,
   UINT nRepCnt,
   UINT nFlags 


Specifies the virtual key code of the given key. For a list of of standard virtual key codes, see Winuser.h
Repeat count (the number of times the keystroke is repeated as a result of the user holding down the key).
Specifies the scan code, key-transition code, previous key state, and context code, as shown in the following list:
Value Description
0–7 Scan code (OEM-dependent value). Low byte of high-order word.
8 Extended key, such as a function key or a key on the numeric keypad (1 if it is an extended key; otherwise 0).
9–10 Not used.
11–12 Used internally by Windows.
13 Context code (1 if the ALT key is held down while the key is pressed; otherwise 0).
14 Previous key state (1 if the key is down before the call, 0 if the key is up).
15 Transition state (1 if the key is being released, 0 if the key is being pressed).

For a WM_KEYUP message, the key-transition bit (bit 15) is 1 and the context-code bit (bit 13) is 0.


A nonsystem key is a keyboard key that is pressed when the ALT key is not pressed or a keyboard key that is pressed when the CWnd has the input focus.

For IBM Enhanced 101- and 102-key keyboards, enhanced keys are the right ALT and the right 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 slash (/) and ENTER keys in the numeric keypad. Some other keyboards may support the extended-key bit in nFlags.

Note   This member function is called by the framework to allow your application to handle a Windows message. The parameters passed to your function reflect the parameters received by the framework when the message was received. If you call the base-class implementation of this function, that implementation will use the parameters originally passed with the message and not the parameters you supply to the function.

See Also

CWnd Overview | Class Members | Hierarchy Chart | WM_CHAR | WM_KEYUP | CWnd::Default | WM_KEYDOWN