WM_DEADCHAR

This message results when a WM_KEYUP and a WM_KEYDOWN message are translated. It specifies the character value of a dead key. A dead key is a key, such as the umlaut (double-dot) character, that is combined with other characters to form a composite character. For example, the umlaut-O character consists of the dead key, umlaut, and the O key.

Parameter Description  

wParam Contains the dead-key character value.  
lParam Contains the repeat count, scan code, key-transition code, previous key state, and context code, as shown in the following list:  
Parameter Description  

  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, 0 otherwise).
  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).

Comments

The WM_DEADCHAR message typically is used by applications to give the user feedback about each key pressed. For example, an application can display the accent in the current character position without moving the caret.

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.