System programming / Методические указания / Html / 4LABA
.HTML4-я Лабораторная работа Вариант1 Вариант2 Вариант3 Вариант4 Вариант5 Вариант6 Вариант7 Вариант8 4.Тема: СРЕДСТВА ВВОДА ИНФОРМАЦИИ 4.1. Цель работы Ознакомление с устройствами, осуществляющими ввод информации в компьютер (мышь, клавиатура), их программным представлением в операционной системе, а также с программными элементами взаимодействия пользователя и ЭВМ (диалоговые окна), получение практических навыков по составлению, написанию и отладке программ, осуществляющих взаимодействие ЭВМ-пользователь. 4.2.Указания по подготовке к выполнению лабораторной работы Необходимо изучить основные элементы интерактивных программ, работающих на персональных компьютерах. Большинство приложений Windows95 активно используют пользовательский ввод с клавиатуры, а также поддерживают работу с мышью. Обязательным является рассмотрение программного представления устройств ввода внутри ядра Windows, а также системные и несистемные аппаратные сообщения, посредством которых осуществляется передача данных приложениям. При подготовке к работе необходимо изучить конспект лекций по указанной теме, методические указания, а также разделы, указанные в [16, c.255-441], [17, c.88-101]. 4.3. Обзор темы работы Большинство программ, работающих под Windows активно используют средства интерактивного взаимодействия с пользователем - мышь, клавиатуру, а также программные средства - окна диалога.При работе с клавиатурой следует уделить особое внимание изучению следующих вопросов: фокус ввода, аппаратные и символьные сообщения, виртуальные коды клавиш, работа с кареткой. Мышь - это графическое устройство ввода информации с одной или более кнопками. Windows поддерживает однокнопочную, двухкнопочную или трехкнопочную мышь. Работа приложений с клавиатурой и мышью основана на системе сообщений. Любое действие (нажатие клавиш, перемещение мыши и т.п.) приводит к тому, что Windows посылает сообщение активному приложению. Данное сообщение обрабатывается оконной процедурой приложений. Следует отметить, что окна приложений обычно имеют в себе дочерние окна, к которым относятся кнопки (buttons), флажки (check boxes), переключатели (radio buttons), текст (text strings), полосы прокрутки (scroll bars), окна редактирования (edit boxes),списки (list boxes). Дочернее окно обрабатывает сообщения мыши и клавиатуры и извещает родительское окно о том, что состояние дочернего окна изменилось. В этом случае дочернее окно становиться для родительского устройством ввода. Оно инкапсулирует особые действия, связанные с графическим представлением окна на экране, реакцией на пользовательский ввод, и извещения другого окна при вводе важной информации. Имеется возможность создавать свои собственные дочерние окна управления. 4.4. Задание на лабораторную работу Варианты:
Вариант 1
Написать программу, которая следит за перемещением указателя мыши и выводит его координаты в окне приложения. Если при выходе за окно правая кнопка мыши нажата, программа продолжает следить за перемещением мыши и выводить ее координаты.
Вариант 2
Написать программу телетайпа, которая выводит в окно приложения символы нажатых клавиш.
Вариант 3
Написать программу перемещения простого изображения по окну приложения по нажатию клавиш управления курсором.
Вариант 4
Написать программу, рисующую прямоугольники при помощи курсора мыши. Нажатие правой кнопки мыши определяет положения углов прямоугольника. С помощью левой кнопки мыши можно нарисовать прямоугольник с цветом фона (очистка прямоугольной области).
Вариант 5
Написать программу, рисующую полигон при помощи мыши. Пользователь задает координаты точек при помощи левой кнопки мыши. Двойной щелчок сигнализирует о последней точке полигона.
Вариант 6.
Написать программу, которая рисует непрерывную линию при передвижении мыши по окну приложения с нажатой левой кнопкой. Изображение должно обновляться по приходу события WM_PAINT.
Вариант 7.
Написать программу, позволяющую рисовать линии. Нажатие левой кнопки мыши определяет первую точку линии. Не отпуская кнопки пользователь перемещает мышь во вторую точку отрезка. Отпускание кнопки приводит к фиксации второй точки линии. Во время движения с нажатой кнопкой мыши, линия должна перерисовываться.
Вариант 8.
Написать программу, эмулирующую работу мыши при помощи клавиатуры. По нажатию определенных клавиш курсор мыши передвигается в пределах окна приложения. При эмуляции нажатия левой клавиши происходит изменение цвета фона.
Вариант 9.
Написать программу, рисующую олимпийские кольца. По нажатию клавиш с цифрами 1-5 одно из колец с соответствующим номером меняет свой цвет. То же самое происходит при щелчке мыши на одном из колец. 4.5. Контрольные вопросы и задания Какие средства ввода информации Вы знаете? Дайте определение таким понятием как и ? Чем отличаются аппаратные (keystrokes) и символьные (characters) сообщения? Какие сообщения от клавиатуры обрабатываются оконной процедурой? Перечислите сообщения, поступающие от мыши. Что такое ? Как вы думаете, можно ли получить сообщения от мыши, если курсор находится за пределами окна? Как рисовать за пределами окна приложения? Как обрабатываются нажатия кнопки в рабочей области окна, созданной функцией CreateWindow? Каким образом можно получить информацию о наличии мыши в системе и ее характеристики? Вариант1 Вариант2 Вариант3 Вариант4 Вариант5 Вариант6 Вариант7 Вариант8