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. Відкомпілюйте і запустіть додаток. При переміщенні миші в клієнтській частині вікна на екрані відображатимуться координати її курсора.

 


 

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

32612. Докладно описати такі питання: – призначення і класифікація сортувальних станцій; – класифікація сортувальних станцій; – основні операції, що виконуються на сортувальних станціях; - основні пристрої, які проектуються на сортувальних станціях 841 KB
  Сортировочные станции СС предназначены главным образом для массовой сортировки вагонов по назначениям плана формирования и организации новых составов сквозных участковых сборных вывозных передаточных и других поездов. Основные операции которые выполняются на СС: операции по формированиюрасформированию поездов передаче вагонов на подъездные пути предприятий промышленного транспорта и приему вагонов с подъездных путей подборке группировке вагонов передач на грузовые станции узла и поездов на портовые и паромные станции а...
32613. Докладно описати такі питання: визначення вантажної станції; класифікація вантажних станцій; основні операц 304.5 KB
  Для ГММ расчетная высота горки по условию докатывания вагонов расчетной весовой категории плохого или очень плохого бегуна до расчетной точки трудного по сопротивлению пути сортировочного парка в зимних неблагоприятных условиях при встречном ветре определяется по формуле: где h0энергетическая высота соответствующая расчетной скорости роспуска состава V0 кДж кН. ; где g ускорение свободного падения 98 м с2; γкоэффициент учитывающий инерцию вращения вращающихся масс бегуна. ; где n число осей бегуна 4; q вес бегуна Потерянная...
32614. Вариант 1 Схема двусторонней сортировочной станции с последовательным расположением основных парков и с об. 613.5 KB
  Вариант 1 Схема двусторонней сортировочной станции с последовательным расположением основных парков и с объемлющим расположением главных путей для пропуска пассажирских поездов рисунок 1. Вариант 2 Комбинированная схема двусторонней сортировочной станции с объемлющим расположением главных путей для пропуска пассажирских поездов рисунок 2. Вариант 3 Схема двусторонней сортировочной станции с параллельным расположением парков и с боковым расположением главных путей для пропуска пассажирских поездов рисунок 3. Вариант 1 Схема двусторонней...
32615. Докладно описати такі питання: призначення та класифікація дільничних станцій; основні операції що викону. 407 KB
  На УС выполняются следующие операции: посадка и высадка пассажиров; прием хранение и выдача багажа почты и грузов пассажирской скорости; технические операции с пассажирскими поездами; технические операции с грузовыми поездами; прием хранение и выдача грузов подача уборка вагонов на грузовой двор и др. погрузочноразгрузочные пункты; погрузкавыгрузка грузов взвешивание грузов вагонов и проверка габаритности у мест погрузки а в необходимых случаях сортировка и перегрузка грузов; подача неисправных вагонов к месту...
32616. Докладно описати такі питання: -призначення і класифікація пасажирської станції (ПС); -основні пристрої, які проектуються на ПС; -основні операції, які виконуються на ПС 198.5 KB
  Мин. Iрп=120 2·8=75 мин; Время занятия перронного пути: Тз=tпмtпрtтпtот где tпм – продолжительность приготовления маршрута мин; tпр – время занятия маршрута приемом поезда мин; tтп – продолжительность операций по технологическому процессу мин; tот время занятия маршрута отправлением поезда мин. tпр=LгпLднLп Vпр где Lгп – длина горловины приема м; Lдн – длина участка приближения м; Lп – длина поезда м; Vпр –скорость поезда при входе на станцию км ч; принимаем Vпр= 40км ч = 66667м мин tпр=4001500450 66667=352...
32617. Назначение и классификация и основные технические и эксплуатационные параметры сортировочных устройств 413.5 KB
  Для сортировки вагонов на станциях рекомендуется проектировать основные и вспомогательные сортировочные устройства следующих типов: горочные – сортировочные горки повышенной большой средней и малой мощности где для сортировки вагонов используется сила тяжести; негорочные – вытяжные пути со стрелочными горловинами на уклоне где используется сила тяжести локомотива и сила тяжести вагонов; вытяжные пути и стрелочные горловины на горизонтальной площадке где используется только сила тяги локомотива. Для выполнения функций основного...
32618. Докладно описати основні пристрої вантажної станції (ВС): -колійний розвиток ВС - сортувальні пристрої; -вимоги до проектування основних пристроїв ВС 69 KB
  Для выполнения работы по приему отправлению и обработке поездов и обслуживанию пунктов погрузки – выгрузки на ГС имеются пути сортировочные устройства грузовой район а в отдельных случаях – устройства для экипировки локомотивов и ремонта вагонов производственнотехнические здания и прочие сооружения. Путевое развитие включает приемоотправочные сортировочные погрузочновыгрузочные выставочные соединительные и ходовые пути. Приемоотправочные пути используются для приема и отправления поездов передач на сортировочную или...
32619. Дати докладну характеристику розв’язок перехрещень в вузлах 900 KB
  Основное требование ко всем пересечениям маршрутов в одном уровне заключается в том что эти пересечения не должны снижать пропускную способность ниже необходимой в период интенсивного движения и создавать угрозу безопасности движения. Пересечения в одном уровне устраиваются при благоприятных топографических условиях относительно небольших размерах движения. Безопасность движения поездов обеспечивается с помощью устройств автоматики и сигнализации предохранительных тупиков. Развязки в одном уровне осуществляются чаще всего с...