69270

Обробка подій миші

Лекция

Информатика, кибернетика и программирование

У цьому розділі розглядаються способи організації введення даних за допомогою миші і клавіатури. У першому розділі описується стандартна система введення даних, використовувана операційною системою Windows для контролю стану введення (input state).

Украинкский

2014-10-02

43 KB

0 чел.

Лекція № 12

Тема: Обробка подій миші

План

  1.  Події
  2.  Введення за допомогою миші
  3.  Створення обробників повідомлень миші

Події

У цьому розділі розглядаються способи організації введення даних за допомогою миші і клавіатури. У першому розділі описується стандартна система введення даних, використовувана операційною системою Windows для контролю стану введення (input state). Тут також приділяється увага розгляду концепції локального стану введення (local input state), вперше реалізованого в операційній системі Windows NT і використовуваного тепер у всіх 32-розрядних версіях Windows.

Потім розглядається введення за допомогою миші. Завдяки бібліотеці базових класів Microsoft (MFCMicrosoft Foundation Classes) часи низькорівневої коди обробки подій миші залишилися у далекому минулому (безумовно, якщо у розробника достатньо вільного часу, він може дозволити собі і таку розкіш). У даному розділі описуються методи MFC, забезпечуючий контроль і маніпулювання мишею, а також розглядаються такі питання, як зовнішній вигляд (форма) курсора миші, захоплення миші і обмеження переміщення курсора миші.

І на закінчення розглянемо способи, що дозволяють додатку використовувати введення з клавіатури. Застосовуючи такі елементи призначеного для користувача інтерфейсу, як поле введення, можна надати Windows і MFC можливість самостійно виконувати всі завдання по обробці введення з клавіатури. Проте достатньо часто буває необхідний жорсткіший контроль над подіями клавіатури. В ході обговорення цієї теми торкнуться такі поняття, як фокус введення з клавіатури (keyboard focus), текстовий курсор (точка введення) (keyboard cursor (insertion point)), стан виділення (selection state) і багато інших елементів конструкції призначеного для користувача інтерфейсу, пов'язані з введенням з клавіатури.

Для більшості програмістів, загартованих розробкою застосувань, що не мають відношення до Windows, управління подіями, характерне для операційної системи Windows, складає певну проблему, коли вони вперше приступають до розробки подібних застосувань. У контексті обробки призначеного для користувача введення термін керований подіями (event-driven) означає, що при кожному натисненні користувачем клавіші або клацанні мишею замість коди опиту, відповідного натисненню клавіш або клацанню мишею, операційна система передає додатку повідомлення Windows {WMwindows message). Бібліотека MFC співвідносить (map) повідомлення Windows з функціями C++, званими обробниками повідомлень (message handler). Оператори, оброблювальні дані, що вводяться в додаток, розташовані саме в цих функціях-обробниках повідомлень. У попередньому розділі розглядалися обробники повідомлень меню, а в справжньому розділі поговоримо про обробників повідомлень подій миші і клавіатури. Спочатку розглянемо стан введення миші, а потім і клавіатури.

Введення за допомогою миші

Як вже мовилося, Windows повідомляє вікна програм про дії користувача, сылая ним повідомлення, що зберігаються в апаратній черзі введення (input queue). Табл. містить список основних повідомлень Windows для миші, обробники яких використовують ця для організації реакції на дії користувача.

Таблиця. Повідомлення Windows для миші

Повідомлення

Причина повідомлення

WM_LBUTTONDOWN

Ліва кнопка миші нажата1 (курсор знаходиться в клієнтській області вікна)

WM_LBUTTONUP

Ліва кнопка миші відпущена

WM_RBUT TON DOWN

права кнопка миші натиснута (курсор знаходиться в клієнтській області вікна)

WM_RBUTTONUP

Права кнопка миші відпущена

WM_MBUTTONDOWN

Середня кнопка миші натиснута (курсор знаходиться в клієнтській області вікна)

WM_MBUTTONUP

Середня кнопка миші відпущена

WM_MOUSEMOVE

Курсор миші переміщається в клієнтській області вікна

Імена повідомлень починаються з префікса WM (Windows Message), вказуючого, що це повідомлення Windows.

Створення обробників повідомлень миші

Обробник повідомлень може бути створений в представленні Class View (Класи). Тепер створимо обробник повідомлення миші, який дозволить відстежувати (і відображати на екрані) переміщення курсора миші в клієнтській області вікна. Для цього необхідно зробити наступне.

1. Створіть проект додатку однодокументного інтерфейсу під назвою HandlerTest.

2. У представленні Class View (Класи) клацніть правою кнопкою мыщи на класі CHandlerTestView і в контекстному меню, що з'явилося, виберіть пункт Properties (Властивості).

3. Клацніть на піктограмі Messages (Повідомлення), розташованій у верхній частині діалогового вікна Properties. Середовище розробки Visual Studio відобразить в діалоговому вікні Properties всі повідомлення, які може отримувати вікно цього класу.

4. Знайдіть елемент WM_MOUSEMOVE І клацніть на нім. Це приведе до додавання в клас функції-члена на ім'я OnMouseMove.

5. Додайте в код функції OnMouseMove наступні рядки.

CClientDC ClientDC( this );

CString strlnfo;

strlnfo.Format( "Current Mouse Position = X:%d Y:%d"

point.x, point.у ) ;

CLIENTDC.TextOut(10, 10, strlnfo, strlnfo.GetLength() );

6. Відкомпілюйте і запустіть додаток. При переміщенні миші в клієнтській частині вікна на екрані відображатимуться координати її курсора.

 


 

А также другие работы, которые могут Вас заинтересовать

24561. Клиент-центрированный подход в психологическом консультировании 39.5 KB
  Консультант конгруэнтен по отношению к своему собственному опыту в отношениях с клиентом. Имеется в виду что поведение консультанта естественно оно соответствует его опыту тому что он думает чувствует т. Консультант переживает безусловную положительную оценку по отношению к клиенту. Определение безусловная означает что консультант не выдвигает по отношению к клиенту условий ценности он безусловно принимает чувств мыслей поведения и т.
24562. Направления и методы работы психолога в образовательном учреждении 52.5 KB
  Психологическая диагностика В компетенцию и обязанности детского психолога входит выявление особенностей психического развития ребенка сформированности определенных психологических новообразований соответствия уровня развития умений знаний навыков личностных и межличностных особенностей возрастным ориентирам требованиям общества и др. Изучение проявлений отдельных симптомов психического состояния ребенка и личностных свойств в целом; уровня развития психологических функций с учетом возраста и образования. Получение данных о динамике...
24563. Психологическая помощь семье в перинатальный период 52 KB
  Очень часто этот термин используется в более широком смысле включая всю беременность роды и первый год жизни ребенка. Психологическая помощь семье планирующей завести ребенка. Мотивы желания иметь ребенка разнообразны. Рождение ребенка в критической ситуации а зачастую попытка разрешить ее с помощью беременности и родов отрицательно влияет на успешность установления раннего диалога в системе мать дитя способствует формированию отклонений семейного воспитания.
24564. Психологическая помощь в экстремальных ситуациях 72.5 KB
  Конфликты их значение для развития человека и социума. Условия и факторы возникновения конфликтов. Конфликт – это столкновение противоположно направленных несовместимых друг с другом тенденций в сознании отдельно взятого индивида в межличностных отношениях индивидов или групп людей связанное с острыми отрицательными эмоциональными переживаниями По значению для человека и социума конфликты делятся на конструктивные созидательные позитивные и деструктивные разрушительные негативные. Положительное воздействие конфликта часто...
24565. Подходы к завершению и разрешению социально-психологических конфликтов 52.5 KB
  СПК это наиболее осознаваемые челом и максимально зависящие от него конфликты основные субъективные конфликты инициируемые сторонами ради достижения своих целей. Решить такие кты достаточно трудно и требует желания работы с обеих сторон. Завершение кта это отсутствие его внешнего проявления которое может выражаться в победе 1 из сторон достижение взаимоприемлемого решения сторонами достижение компромисса полное прекращение взаимодействия утрата объекта или интереса к нему изменение отношений мду сторонами и т. Решение кта ...
24566. Методы изучения отклоняющегося поведения 66.5 KB
  ОП девиантное ДП – это поведение личности или группы противоречащее наиболее важным социальным нормам принятым в конкретное время в конкретном обществе. соц. Зимбарда Стенфордский тюремный экспт – формы агрессивного поведя вынуждаются ситуацией соц. и особтях ее соц.
24567. Особенности работы с девиантным поведением 78.5 KB
  личности или группы противоречащее наиболее важным социальным нормам принятым в конкретное время в конкретном обществе. соц. Методы работы и воздя на личность с ДП: соц. контроль и соц.
24568. Арттерапии и ее применение в психологической практике 70 KB
  Особенности АТ процесса: это открытая динамическая живая сма кот состоит из клиента продукта творчества психолог внутр механизм для достижения результатов находится в самом процессе творчества. эмоциям гармонизация внутр состя устранение или ослабление имеющихся у больных симптомов связ с психич. Коррекционные возможности АТ: развитие и усиление внимания к своим чувствам и переживаниям что повышает самооценку; сам процесс твва дающий возмть свободно вырть свои чувва потрти и фантазии в виде продуктов твва и являющегося...
24569. Психологические аспекты планирования карьеры сотрудников в организации 68.5 KB
  ; род занятий профессия; последть и комбинация ролей кот. Карьерные установки это то что личность стремиться достичь в проф. Организация конся по вопросам карьеры: Проф. выбора профессии – все методики проф ориент.