Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СПО_экзамен.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
500.22 Кб
Скачать

9. Коды oem, ansi, ascii, виртуальные коды

скан-кода OEM (Original Equipment Manufacturer) (код клавиши, генерируемый аппаратурой компьютера) содержится в 32-разрядной переменной lParam, передаваемой в оконную процедуру, состоящей из шести полей:

счетчика повторений (число нажатий клавиши),

скан-кода OEM (Original Equipment Manufacturer) (код клавиши, генерируемый аппаратурой компьютера),

флага расширенной клавиатуры (1, если сообщение клавиатуры появилось в результате работы с дополнительными клавишами расширенной клавиатуры IBM),

кода контекста (1, если нажата клавиша <Alt>),

флага предыдущего состояния клавиши (0, если в предыдущем состоянии клавиша была отпущена, и 1, если в предыдущем состоянии она была нажата),

флага состояния клавиши (0, если клавиша нажимается, и 1, если клавиша отпускается).

Гораздо более важным параметром аппаратных сообщений клавиатуры, по сравнению с lParam, является параметр wParam. В этом параметре содержится виртуальный код клавиши (virtual key code), идентифицирующий нажатую или отпущенную клавишу.

Для всех аппаратных сообщений клавиатуры параметр wParam содержит код виртуальной клавиши, соответствующей нажатой клавише. Именно этот параметр используется приложением для идентификации клавиши. Код виртуальной клавиши не зависит от аппаратной реализации клавиатуры. Коды виртуальных клавиш имеют символьные обозначения, определенные в заголовочных файлах Windows, и имеют префикс VK_.

Сама же система Windows для представления символов использует набор символов ANSI. В этом наборе определены не все коды и отсутствуют символы псевдографики.

Если программа MS-DOS запускается в окне Windows, для нее выбирается набор символов OEM. Поэтому

В Windows используются как набор символов ANSI, так и набор символов OEM. По умолчанию в контекст отображения выбирается системный шрифт, для которого используется набор символов ANSI.

Для одинаковых символов наборы ANSI и OEM используют разные коды, это приводит к необходимости перекодировки символов, например, при переносе текстов, подготовленных в среде MS-DOS, в среду Windows. В составе программного интерфейса Windows имеются функции, которые берут на себя работу по преобразованию и перекодировке символов.

Параметр wParam – это код символа ASCII.

10. Фокус ввода

Поскольку клавиатура - одна, а элементов, могущих ее использовать, может быть много, необходимо каким-то способом выделять элемент, которому в данный момент передается клавиатурный ввод. Это выделение достигается передачей элементу фокуса ввода.

Концепция фокуса ввода тесно связана с концепцией активного окна.

Окно, имеющее фокус ввода – это либо активное окно, либо дочернее окно активного окна

Обрабатывая сообщения WM_SETFOCUS и WM_KILLFOCUS, оконная процедура может определить, когда окно имеет фокус ввода. Сообщение WM_SETFOCUS показывает, что окно получило фокус ввода, а WM_KILLFOCUS – что окно потеряло его. В ответ на эти сообщения функция окна не может запретить получение или потерю фокуса ввода, так как эти сообщения носят чисто информирующий характер.