Doden-teken berichten

Sommige niet-Engelse toetsenborden bevatten tekentoetsen die verwachting niet tekens te produceren door zelf. In plaats daarvan worden ze gebruikt een diakritisch teken toevoegen aan het teken geproduceerd door de volgende toetsaanslag. Deze sleutels worden dode toetsengenoemd. Het accent circonflexe toets op een Duits toetsenbord is een voorbeeld van een dode sleutel. Het teken dat bestaat uit een "o" met een accent circonflexe zou, een Duitse gebruiker typt het accent circonflexe sleutel gevolgd door de "o"-toets. Het venster met de toetsenbordfocus zou de volgende reeks berichten ontvangen:

WM_KEYDOWN
WM_DEADCHAR
WM_KEYUP
WM_KEYDOWN
WM_CHAR
WM_KEYUP

TranslateMessage het WM_DEADCHAR wordt gegenereerd wanneer het verwerkt de WM_KEYDOWN boodschap van een dode sleutel. Hoewel de wParam parameter van het WM_DEADCHAR bericht de tekencode van de diakritisch teken voor de dode toets bevat, negeert een toepassing meestal het bericht. In plaats daarvan verwerkt het de WM_CHAR bericht gegenereerd door de volgende toetsaanslag. De parameter wParam van het WM_CHAR bericht bevat de tekencode van de brief met de diakritisch teken. Als de volgende toetsaanslag een karakter die niet kan worden gecombineerd met een diakritisch teken genereert, genereert het systeem twee WM_CHAR berichten. De parameter wParam van de eerste bevat de tekencode van de diakritisch teken; de parameter wParam van de tweede bevat de tekencode van de latere karakter sleutel.

De TranslateMessage functie het WM_SYSDEADCHAR wordt gegenereerd wanneer het verwerkt de WM_SYSKEYDOWN boodschap van een dode systeemsleutel (een dode toets die is ingedrukt in combinatie met de alt-toets). Een toepassing meestal negeert het WM_SYSDEADCHAR bericht.

Index