Высокоуровневые методы информатики и программирования Лекция 22 Работа с внешними устройствами
План работы Обработка событий внешних устройств События устройства «мышь» События клавиатуры
Устройства для поддержки графического интерфейса Дисплей (или монитор) Клавиатура – изобретена в 1874 году для пишущей машинки системы Ремингтон Мышь – изобретена в 1963 году (в 1967 г. получен патент )
Устройство «мышь» Указательное устройство с одно или несколькими кнопками. При перемещении мыши ОС Windows передвигает по экрану небольшую растровую картинку – курсор.
First mouse in hand, 1963–64 First mouse First production mouse Dr. Douglas C. Engelbart (1963, Xerox PARC Co.) Изобретатель устройства "мышь"
Указательное устройство «мышь» Мышь это указательное устройство с одной или несколькими кнопками. При передвижении мыши ОС Windows передвигает по экрану небольшую растровую картинку – курсор. Курсор мыши имеет горячую точку (hot spot) – пиксель, задающий положение курсора на экране (например, у стрелки горячая точка – кончик стрелки). Когда говорят о позиции мыши, имеют в виду позицию горячей точки. Щелчок мыши это нажатие и отпускание ее кнопки. Двойной щелчок – это два щелчка выполненные через короткий промежуток времени.
Курсор мыши Небольшая растровая картинка Имеет горячую точку (hot spot) – пиксель, который задает точное положение курсора на экране. Когда говорят о позиции курсора, то имеют ввиду позицию горячей точки.
Основные события устройства «мышь» Передаются второй параметр типа EventArgs –Click – щелчок левой кнопкой мыши или нажатие клавиши Space клавиатуры (для кнопки имеющей фокус ввода). –MouseEnter – при перемещении курсора над формой –MouseLeave - при уходе курсора с формы –MouseHover – при задержке курсора над формой Передаются второй параметр типа MouseEventArgs –MouseClick – щелчок кнопкой мыши (вращение колеса) –MouseDoubleClick – двойной щелчок –MouseDown – при нажатии кнопки мыши –MouseUp – при освобождении кнопки мыши –MouseMove – при перемещении курсора над формой (с некоторой периодичностью).
Свойства класса MouseEventArgs Button – задает, какая кнопка нажата –MouseButtons.Left –MouseButtons.Middle –MouseButtons.Right Clicks – количество нажатий кнопки X и Y – координаты курсора Location – объект Point с X и Y; Delta – количество щелчков колесика
Клавиатура Набор клавиш при нажатии на которые генерируются Коды клавиш – условный номер клавиши на клавиатуре Коды символов - в соответствии с используемой системой кодирования (Unicode, ANSII). Зависит от используемой кодировочной таблицы (языка) и значения регистра (нижний или верхний) Каждая клавиша связанная с символом может сгенерировать 4 кода буквы. Например: –a, A, ф, Ф –q, Q, й, Й
События устройства «клавиатура» KeyDown – при опускании клавиши (данные в KeyEventArgs) KeyPress – нажатие клавиши с символом (KeyPressEventArgs ) KeyUp - при поднятии клавиши (данные в KeyEventArgs)
Данные о событиях нажатия и отпускания клавиши - KeyEventArgs bool Alt – нажата ли клавиша Alt (true – да; false - нет); bool Control – нажата ли клавиша Ctrl (true – да; false - нет); bool Shift – нажата ли клавиша Shift (true – да; false - нет); Keys KeyCode – виртуальный код нажатой клавиши (Keys) bool Handled – задает - обработано или нет событие (если true, то событие обработано)
Перечисление виртуальных кодов клавиш Keys Обозначения кодов клавиш клавиатуры Одно из наиболее больших в библиотеке FCL Приведены в файле «Перечисление Keys.doc». Например: –…
Данные о событии KeyPress - KeyPressEventArgs bool Handled – обработано или нет событие (если true, то событие обработано) char KeyChar - ASCII символ нажатой клавиши