Элемент управления CComboBox всегда принимает заглавные буквы, когда мы его набираем

Я использую контроль CComboBox. Когда я набираю в нем несколько символов и проверяю, какая буква набрана (в PreTranslateMessage ()), тогда я всегда получаю заглавную букву в wParam его сообщения. Мой элемент управления CComboBox не имеет свойства TRUE в верхнем регистре. Почему это происходит?

0

Решение

Ключи — это забавные вещи. Что такое состояние по умолчанию, строчные или прописные?

Если вы посмотрите на клавиатуру, скорее всего, на физических клавишах есть заглавные буквы. По умолчанию: верхний регистр

Когда вы вводите клавиши, вам нужно удерживать клавишу Shift, чтобы создать верхние клавиши, без клавиш Shift вы получите нижний регистр. По умолчанию: строчные

В качестве альтернативы вы можете использовать клавишу Caps Lock. Caps Lock обычно выключен. По умолчанию: строчные.

непереведенным нажатия клавиш, отправленные на использование вашего приложения VK_AVK_Z коды клавиш. VK_A — это «А», а не «а». По умолчанию: верхний регистр. Заглушки Lock и Shift применяются позже, в переводе.

Это могло бы быть разработано последовательно, но это не так, и теперь мы застряли в беспорядке, чтобы быть обратно совместимыми. Если вы хотите «нормальное» поведение клавиатуры, не пытайтесь точно копировать поведение ОС. Есть такие вещи, как «Sticky Keys» (удерживайте нажатой клавишу shift, чтобы получить поведение, похожее на Caps Lock), о котором вы можете даже не знать. Вместо этого используйте конечный результат из ОС. Для Windows это WM_CHAR,

0

Другие решения


По вопросам рекламы ammmcru@yandex.ru
Adblock
detector