Цитата Сообщение от Alex_K Посмотреть сообщение
пока пусть останется, как есть.
Если нужно отличать нажатие <Enter> и <NumPadEnter> - это можно сделать, анализируя скан-коды.

В Windows невозможно различить нажатие <Enter> и <NumPadEnter>, используя только GetKeyboardState().

Если анализировать входящие скан-коды и вести собственную таблицу, аналогичную таблице GetKeyboardState(), но только для единственной клавиши <NumPadEnter> - то потеря фокуса ввода (и обнуление флага нажатия <NumPadEnter>) не представляет большой проблемы, поскольку <NumPadEnter> генерит автоповтор, а значит при возврате фокуса с нажатой клавишей <NumPadEnter> - программа немедленно о этом узнает и установит соответствующий флаг в таблице нажатых клавиш ( напомню, что в обсуждаемом случае таблица нажатых клавиш состоит из единственной ячейки, учитывающей состояние клавиши <NumPadEnter> ).