У меня есть следующий обработчик ключа:
void Form1::texBox_KeyDown(System::Object^ sender,
System::Windows::Forms::KeyEventArgs^ e) {
//New lines in response to suggestion of using keypress
if (Control::ModifierKeys == Keys::Alt) return;
e->SuppressKeyPress=true;
unsigned char chr = (unsigned char)e->KeyCode;
//char chr = (char)e->KeyCode; //Gives negative 'values'
if (chr < ' ') return;
//else do stuff
}
Это обрабатывает цифры и буквы соответствующим образом, но когда я нажимаю на любую пунктуацию, коды клавиш становятся полностью умственными. Используя подписанный char
, я получил -66 за '.' и 190 с unsigned char
.
Полагаю, это связано с чем-то, с чем я связывался с Windows. Может, кто-нибудь предложит лучший способ обработки текстовой клавиатуры вне стандартных контейнеров документов Forms?
Нажатие клавиш звучит хорошо, будет ли работать подавление вывода? Может быть, даже обнаружение «Alt» (просто для маршрутизации удобной комбинации alt-F4)? Пожалуйста, смотрите две строки, которые я добавил в точке входа метода. KeyPress проще, чем заставить мой dllimport работать, просто нужно обрабатывать клавиши со стрелками и перелистывать страницы вверх / вниз, возможно, мне нужны оба ...