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

 


 

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

41218. ПОНИМАНИЕ КОМПОНЕНТОВ РЕЧЕВОГО ВЫСКАЗЫВАНИЯ. СЛОВО И ПРЕДЛОЖЕНИЕ 109 KB
  Теперь мы остановимся на психологическом анализе понимания высказывания т. Анализ процесса понимания речевого сообщения составляет одну из наиболее трудных и как это ни странно одну из наименее разработанных глав научной психологии. ПРОБЛЕМА Психологи неодинаково подходили к анализу процесса понимания смысла речевого сообщения или процесса декодирования воспринимаемого речевого высказывания. Одни авторы предполагали что для понимания смысла речевого сообщения достаточно иметь прочный и широкий словарь т.
41219. ПОНИМАНИЕ СМЫСЛА СЛОЖНОГО СООБЩЕНИЯ 92.5 KB
  Приступая к обсуждению этого вопроса мы тем самым переходим от анализа понимания системы внешних значений речевого высказывания к пониманию его внутреннего смысла от проблем понимания слова фразы и даже внешнего значения текста к пониманию подтекста смысла и в конечном счете к пониманию мотива который стоит за текстом. В проблемах понимания литературного произведения понимание подтекста смысла и в конечном итоге мотива пожалуй является основным. Глубина прочтения текста или обнаружение его подтекста его внутреннего смысла может...
41220. ЯЗЫК И ДИСКУРСИВНОЕ МЫШЛЕНИЕ. ОПЕРАЦИЯ ВЫВОДА 91 KB
  Это свойство языка создает возможность сложнейших форм дискурсивного индуктивного и дедуктивного мышления которые являются основными формами продуктивной интеллектуальной деятельности человека. Сложившийся в течение многих тысяч лет общественной истории аппарат логического сочетания нескольких высказываний образует основную систему средств лежащих в основе логического мышления человека. Моделью логического мышления осуществляющегося с помощью речи может являться силлогизм. Таким образом силлогизм как аппарат логического мышления...
41221. МОЗГОВАЯ ОРГАНИЗАЦИЯ РЕЧЕВОЙ ДЕЯТЕЛЬНОСТИ. ПАТОЛОГИЯ РЕЧЕВОГО ВЫСКАЗЫВАНИЯ 144.5 KB
  Выше мы подробно осветили основные вопросы психологии речевой деятельности. Мы остановились на структуре слова и фразы на происхождении этих основных составных единиц языка на порождении целого речевого высказывания на анализе того пути от мысли к развернутому речевому сообщению который проделывает человек формулируя свое речевое высказывание. Мы остановились на этапах декодирования или понимания речевого сообщения начинающегося с восприятия обращенной к человеку речи проходящего стадии...
41222. МОЗГОВАЯ ОРГАНИЗАЦИЯ ПРОЦЕССОВ ДЕКОДИРОВАНИЯ (ПОНИМАНИЯ) РЕЧЕВОГО СООБЩЕНИЯ 95 KB
  Этот этап порождения речевого высказывания обеспечивается передними отделами мозга; их поражение как мы видели ведет к своеобразному нару шению речевой деятельности в виде распада синтагматической организации связного речевого сообщения. Вторым этапом речевого высказывания является этап включения высказывания в коды языка. В этих случаях нарушается парадигматическая организация речевого высказывания при сохранности ее синтагматической структуры.
41223. История возникновения и перспективы применения штрихового кодирования 1.42 MB
  История возникновения и перспективы применения штрихового кода Вид и размер штрихового кода EN13.5 Определение размера штрихового кода.2 Плотность штрихового кода.
41224. Сравнительная психология (зоопсихология) 307 KB
  Предмет изучения зоопсихологии это психическая деятельность животных это комплекс проявлений поведения и психики единый процесс психического отражения как продукт внешней активности животного. Изучение животных стоящих на разных ступенях развития от амёбы до приматов. Ощущения животных рассматриваются как первостепенные явления психики нижняя грань интеллект высшая грань. Импритинг видовая память процессы запечатления Лоренц этологизм поведения животных; 4.
41225. КОНЦЕПЦИИ ЛОГИСТИКИ 125 KB
  Практическими примерами использования информационной концепции логистики являются широко распространенные информационнопрограммные модули MRP I MRP II DRP OPT QR CR и т. К числу ее важнейших функций относятся в частности контроль за состоянием запасов включая расчет точки заказа формирование связей производства снабжения и сбыта с использованием обеспечивающего комплекса системы MRP. Работа системы DRP осуществляется поэтапно: 1 агрегированное планирование с использованием прогнозов и данных о фактически поступивших заказах; 2...
41226. Классификационные признаки микроконтроллеров 878 KB
  Модификация памяти и чтение из нее необходимых данных осуществляется только лишь с помощью специальных команд чтения записи; в система команд должна содержать минимальное число наиболее часто используемых простейших команд одинаковой длины: г состав системы команд должен быть оптимизирован с учетом требований компиляторов языков высокого уровня. Центральное процессорное устройство Процессор формирует адрес очередной команды выбирает команду из памяти и организует ее выполнение. Благодаря специальным командам их можно...