Døde tegn meldinger

Noen ikke-engelsk tastatur inneholde tegn nøkler som ikke er forventet å produsere tegn av seg selv. I stedet, de brukes til å legge til et diakritisk tegn til tegn produsert av påfølgende tastetrykket. Disse nøklene er kalt død nøkler. Med circumflekstegn nøkkelen på et tysk tastatur er et eksempel på en død nøkkel. Hvis du vil angi et tegn som består av en "o" with a med circumflekstegn, skriver en tysk bruker nøkkelen med circumflekstegn etterfulgt av "o"-tasten. Vinduet med fokus på tastaturet vil motta følgende sekvens av meldinger:

WM_KEYDOWN
WM_DEADCHAR
WM_KEYUP
WM_KEYDOWN
WM_CHAR
WM_KEYUP

TranslateMessage genererer WM_DEADCHAR meldingen når den behandler WM_KEYDOWN meldingen fra en død nøkkel. Selv om parameteren wParam WM_DEADCHAR meldingen inneholder tegnkoden til det diakritiske tegnet for nøkkelen død, ignorerer en applikasjon vanligvis meldingen. I stedet, den behandler WM_CHAR -meldingen som er generert av påfølgende tastetrykket. Parameteren wParam WM_CHAR meldingen inneholder tegnkoden i brevet med det diakritiske tegnet. Hvis etterfølgende tastetrykket genererer et tegn som ikke kan kombineres med et diakritisk tegn, genererer systemet to WM_CHAR-meldinger. Parameteren wParam av første inneholder tegnkoden til det diakritiske tegnet; parameteren wParam av andre inneholder tegnkoden til nøkkelen for etterfølgende tegn.

Funksjonen TranslateMessage genererer WM_SYSDEADCHAR meldingen når den behandler WM_SYSKEYDOWN meldingen fra en død system-nøkkel (en død nøkkel som trykkes i kombinasjon med alt-tasten). Et program som vanligvis ignorerer WM_SYSDEADCHAR meldingen.

Index