Если ваш прототип функции выглядит следующим образом: LRESULT CALLBACK WndProc( HWND hWnd, UING uMsg, WPARAM wParam, LPARAM lParam )
, значение вашего письма находится внутри wParam.Предполагая чистый ввод с клавиатуры ASCII, вы можете использовать следующее:
short newKeyCode = (char)wParam;
if (uMsg == WM_CHAR || uMsg == WM_SYSCHAR)
if (newKeyCode - 'a' < 26) {
newKeyCode = newKeyCode - 'a' + 'A';
} else {
newKeyCode = newKeyCode - 'A' + 'a';
}
Конечно, если вы работаете в системе Windows после 2000 (и, следовательно, работаете на архитектуре NT), wParam будет Unicodeзначение (и UTF-16, как в соглашении Windows), поэтому вашей программе, возможно, придется поиграться с этим, чтобы привести его в хорошее состояние, но в остальном это все, что вам нужно.