Как я могу преобразовать символ любого языка, который я ловлю с помощью WM_CHAR
в WndProc
код сканирования клавиатуры? Например, если нажата кнопка x
он вернул бы 0x2d и т. д.
Код сканирования находится в битах 16-23 параметра lParam в соответствии с WM_CHAR документация, так что просто сдвиньте и замаскируйте:
int scanCode = (lParam >> 16) & 0xff;
Если у вас есть персонаж, вы можете позвонить OemKeyScan, который помещает код сканирования в младший байт:
char c='X';
int scanCode=OemKeyScan(c) & 0x0ff;
Других решений пока нет …