Большинство функций Win32 API связанных с устройствами ручного ввода осуществляют проверку поступающей информации, являясь, таким образом, информационными. К основным информационным функциям устройств ручного ввода можно отнести следующие ниже перечисленные функции.
Для клавиатуры:
· GetKeyboardType;
· GetKeyboardState;
· GetKeyState;
· GetAsyncKeyState.
Для мыши:
· GetCursorPos;
· GetKeyboardState (для кнопок мыши);
· GetSystemMetrics;
· SystemParametersInfo (для получения скорости перемещения курсора).
Получаемая информация предназначена как для реагирования программы на действия оператора, так и для получения типа установленных устройств. Приведенные функции позволяют получить информацию о:
· типе клавиатуры;
· количестве функциональных клавиш клавиатуры;
· текущем состоянии всех клавиш (клавиатуры и мыши);
· текущем состоянии заданной клавиши;
· текущем и предыдущем состоянии заданной клавиши;
· положении курсора;
· подключении мыши в системе;
· количестве кнопок мыши;
· скорости перемещения курсора;
· и т.д.
|
|
Важнейшей информацией для интерфейса пользователя большинства приложений является состояние клавиш и положение курсора мыши на экране. По данной информации принимается решение о связи между оператором и выполняемой программой на ПЭВМ.
Управляющие функции предназначены для настройки клавиатуры и мыши. Например, включение или выключение действие клавиш: "NumLock", "CapsLock" и "ScrollLock". С помощью функций управления мышью программа настраивает курсор, задавая форму отображения, координаты расположения курсора и скорость перемещения мыши. Основные управляющие функции для устройств ручного ввода представлены ниже.
Для клавиатуры - SetKeyboardState.
Для мыши:
· ShowCursor;
· SwapMouseButton;
· ClipCursor;
· SetCursorPos;
· SystemParametersInfo (для установки скорости перемещения курсора).
В приложениях на базе Win32 потребность использования функций управления мышью возрастает. Это объясняется тем, что развитие операционных систем Windows направленно на упрощение работы оператора. Управление устройствами ручного ввода с помощью приведенных функций сводится к следующему:
· задать состояние клавиатуры;
· показать/скрыть курсор;
· поменять функции кнопок мыши между собой;
· ограничить перемещение курсора заданной областью;
· задать положение курсора;
· задать скорость перемещения курсора.
Как правило, данные функции используются в программах в процедурах настройки устройств ручного ввода. Исключение составляет функция ограничения перемещения курсора в заданной области, так как область динамически изменяется в процессе выполнения программы.
Управление вводом с клавиатуры получило новое направление развития, вследствие необходимости распределения вводимой информации между различными потоками в многозадачных системах. Так как функции управления потоками ввода захватывают более широкую область, чем управление клавиатурой, они не будут рассмотрены.