Wiadomości martwych znak

Niektórych klawiatur innych niż angielska zawierają klucze znaków, których nie oczekuje się drukować znaki samodzielnie. Zamiast tego są one używane do dodawania znaku diakrytycznego znak, wyprodukowany przez kolejne naciśnięcia klawiszy. Klucze te są nazywane martwych kluczy. Cyrkumfleksowego klawisz na klawiaturze niemiecki jest przykładem martwych klucza. Aby wprowadzić znak składający się z "o" ze znakiem akcentu cyrkumfleksowego, niemieckich użytkowników wpisać klucz cyrkumfleksowego klawisza "o". Okno z fokusem klawiatury otrzymałby poniższa sekwencja wiadomości:

WM_KEYDOWN
WM_DEADCHAR
WM_KEYUP
WM_KEYDOWN
UŻYWAJĄC FUNKCJI
WM_KEYUP

TranslateMessage generuje komunikat WM_DEADCHAR podczas przetwarzania wiadomości WM_KEYDOWN z martwych klucza. Mimo że parametr wParam wiadomości WM_DEADCHAR zawiera kod znaku diakrytycznego martwych klucza, aplikacja zazwyczaj ignoruje wiadomości. Zamiast tego przetwarza wiadomości używając funkcji generowanych przez kolejne naciśnięcia klawiszy. Parametr wParam wiadomości używając funkcji zawiera kod znaku listu z znak diakrytyczny. Jeśli kolejne naciśnięcia klawisza generuje znak, który nie może być łączone z znak diakrytyczny, system generuje dwa wiadomości używając funkcji. Parametr wParam pierwszego zawiera kod znaku diakrytycznego; Parametr wParam drugi zawiera kod znaku klucza kolejny znak.

Funkcja TranslateMessage generuje komunikat WM_SYSDEADCHAR podczas przetwarzania wiadomości WM_SYSKEYDOWN z martwych klucza systemowego (martwy klucz naciśnięcia w kombinacji z klawiszem alt). Aplikacja zazwyczaj ignoruje wiadomości WM_SYSDEADCHAR.

Index