Я вижу, что WindowProc может использовать WM_CHAR и wParam для обнаружения ввода символов, и я также вижу, что WindowProc может использовать WM_KEYUP и wParam для обнаружения выпусков виртуальных ключей. Однако я хотел бы определить момент, когда пользователь отпускает какой-то другой ключ (например, точку с запятой). Я еще не нашел документации по этому сценарию в MSDN.
Как вы можете обнаружить выпуски ключей в WindowProc для ключей, у которых нет виртуального ключа?





Все ключи имеют виртуальный ключевой код, некоторые из них просто не отображаются через макрос. Например, ключ, связанный с буквой, имеет значение VK кода ASCII этой буквы. Для точки с запятой, согласно этот список, вы должны использовать одну из клавиш OEM, в зависимости от клавиатуры.
В качестве более портативного способа решения вашей проблемы можно вызвать MapVirtualKey (или, для зависимых от клавиатуры клавиш, MapVirtualKeyEx) из WM_KEYUP, чтобы найти связанный с ними символ.