Это продолжение моего предыдущего вопроса: WinAPI: как обрабатывать ввод с клавиатуры в пользовательском элементе управления редактирования
Я чувствовал, что должен поставить это в другой вопрос, поскольку природа вопроса немного другая.
Итак, моя программа сейчас получает данные, но они немного отключены. Лучший способ объяснить это просто показать вам код и результат ...
Вот код, который обрабатывает WM_CHAR:
case WM_CHAR:
{
TCHAR inc;
inc = MapVirtualKey(wParam, 2);
for(short i = 0; i < sizeof(TCHAR); i++)
{
unsigned char* x = reinterpret_cast<unsigned char*>(&inc);
printf("0x%.2X ", x[i]);
}
//InvalidateRect(t_hwnd, NULL, 0); // Repaint the window...
}
break;
Программа скомпилирована как Unicode, поэтому все вызовы функций по умолчанию имеют свои варианты Unicode.
Вот результат ввода asdf:
0x31 0x00 0x00 0x00 0x34 0x00 0x36 0x00
Размер TCHAR составляет 2 байта, так что получается "1 \ 046"
Кто-нибудь знает, что здесь происходит?