
- •Лекція №1 Тема: Мова програмування: загальні поняття та означення. Загальні поняття візуального програмування план
- •2. Інтегроване середовище розробки
- •3. Основні поняття візуального програмування
- •4. Етапи розв’язування задачі на еом
- •Лекція № 2
- •Поняття та призначення відладчика програми.
- •Інтегроване середовище розробки програм. Керовані і некеровані програми
- •Поняття та призначення відладчика програми
- •3. Інтегроване середовище розробки програм. Керовані і некеровані програми
- •Контрольні запитання
- •Лекція 3
- •1 Консольний додаток
- •2. Діалоговий додаток
- •3 Багатовіконний додаток Windows
- •4.Одновіконний додаток
- •Контрольні запитання
- •Лекція № 4
- •2. Оголошення або специфікація класу
- •3. Реалізація класу
- •Контрольні запитання
- •Лекція 5
- •1. Програмне середовище Windows
- •2. Основи програмування під Windows
- •3. Типи даних в Windows
- •Переваги використання mfc (самостійно)
- •5. Архітектура додатка
- •6. Типи майстрів проектів (самостійно)
- •7. Обробка подій в додатках класу mfc
- •Повідомлення миші
- •Введення за допомогою миші
- •Контрольні запитання
- •Лекція 6 Тема: Програмування інтерфейсу користувача: кнопки, списки план:
- •2. Обробка натискання кнопки
- •3. Клас cListBox
- •2. Завдання реакції на вибір в ComboBox
- •3. Операції з елементами
- •4. Діалог в якості головного вікна
- •Контрольні запитання
- •Лекція 8 Тема: Програмування інтерфейсу користувача: меню, діалогові вікна план
- •2. Створення обробника меню
- •3. Додавання діалогового вікна
- •4. Додавання діалогу за допомогою класу
- •5. Обмін даними з діалогом
- •4. Назвіть послідовність етапів створення діалогу за допомог класу?
- •2. Забезпечення видалення, редагування, додавання записів в бд
- •3. Забезпечення сортування та фільтрації записів з бд.
- •4.Стандарт odbc і dao
- •Контрольні запитання
7. Обробка подій в додатках класу mfc
Потім розглядається введення за допомогою миші. Завдяки бібліотеці базових класів Місrosoft (МFС - Місrosoft Faundetion Classes) часи низькорівневого коду обробки подій миші залишилися у далекому минулому (безумовно, якщо у розробника достатньо вільного часу, він може дозволити собі і таку розкіш). У даному розділі описуються методи МFС, що забезпечують контроль і маніпулювання мишею, а також розглядаються такі питання, як зовнішній вигляд (форма) курсору миші, захоплення миші і обмеження переміщення курсору миші.
І на закінчення розглянемо способи, що дозволяють додатком використовувати введення з клавіатури. Застосовуючи такі елементи користувальницького інтерфейсу, як поле введення, можна надати Windows і МFС можливість самостійно виконувати всі завдання по обробці введення з клавіатури. Однак досить часто буває необхідний більш жорсткий контроль над подіями клавіатури. В ході обговорення цієї теми будуть порушені такі поняття, як фокус введення з клавіатури (Keyboard focus), текстовий курсор (точка вводу) (keyboard kursor (insertion point)), стан виділення (selection stste) і багато інших елементів конструкції для користувача інтерфейсу, пов'язані з введенням з клавіатури.
Термін керований подіями (event-driven) означає, що при кожному натисканні користувачем клавіші або клацанні мишею замість коду опитування, відповідного натисненню клавіш або клацання мишею, операційна система передає додатком повідомлення Windows (WM - windows message).
Бібліотека MFC співвідносить (map) повідомлення Windows з функціями С + +, званими обробниками повідомлень (message handler). Оператори, що обробляють дані, що вводяться в додаток, розташовані саме в цих функціях-обробниках повідомлень.
Повідомлення миші
За аналогією з повідомленнями клавіатури повідомлення миші генеруються при її переміщеннях і при натисканні кнопок миші. Однак, на відміну від повідомлень клавіатури, повідомлення миші передаються в будь-яке вікно, над яким знаходиться покажчик або над яким був виконаний клацання, незалежно від наявності у цього вікна фокусу вводу. Кожне вікно реагує на повідомлення миші у відповідності зі своїми власними завданнями.
Позиція миші відображається на екрані за допомогою покажчика, який за замовчуванням має форму стрілки. Кінець стрілки називається активною точкою (hotspot), оскільки він відповідає реальній точки для стандартної
Всі операції, пов'язані з мишею, виконуються виходячи з поточних координат активної точки. Перелічимо основні операції з мишею, оскільки для кожної з них генеруються свої власні повідомлення:
• Клацання - Натискання й відпускання кнопки миші
• Подвійне клацання - Два послідовних натиснення і відпускання кнопки миші, пауза між кото ¬ римі не перевищує заданого значення
• Переміщення - Рух миші без натискання на кнопки
• Перетягування - Рух миші при натиснутій кнопці
Ці операції визначають типи повідомлень, які генеруються Windows при відповідних подіях, пов'язаних з мишею. Повідомлення миші поділяються на два класи: повідомлення для робочої області вікна та повідомлення для службової області вікна. Повідомлення для робочої області вікна використовуються значно частіше, тому їм буде приділено першочергову увагу. У табл. 8.2 приведений список
Повідомлення WM_MOUSEMOVE передається в тому випадку, коли покажчик миші переміщується в робочій області вікна. Повідомлення WM_MOUSEACTIVATE передається в разі клацання над вікном, яке до цього було неактивним, в результаті чого вікно стає активним. Повідомлення WM_MOUSEHOVER і WM_MOUSELEAVE передаються у відповідь на трасування миші при виклику функції TrackMouseEvent (). Повідомлення WM_MOUSEHOVER генерується в тому випадку, якщо протягом заданого періоду часу трасування покажчик миші не виходив за межі зазначеної прямокутної області. Зазвичай це со ¬ спілкування служить для виклику контекстних підказок. Повідомлення WM_MOUSELEAVE генерується в тому випадку, якщо протягом заданого періоду часу трасування покажчик миші виходить за межі робочої області вікна.
Решта повідомлення пов'язані з обертанням коліщатка прокрутки і клацаннями на кнопках миші. Коліщатко прокрутки - це порівняно нове удосконалення миші, яке вперше з'явилося в моделі Microsoft Intcllimouse. При обертанні коліщатка прокрутки генерується повідомлення WM_MOUSEWHEEL, що містить інформацію про вугілля повороту. У більшості додатків це коліщатко використовується як альтернатива смугах прокрутки. Іншими словами, поворот коліщатка еквівалентний клацанню на стрілці в кінці смуги прокрутки.
Повідомлення WM_XBUTTONDOWN передаються в результаті натискання кнопки миші в межах робочої області вікна, а повідомлення WM_XBUTTONUP передаються при відпуску кнопки. Повідомлення WMXBUTTONDBLCLK генеруються при подвійному натисканні в робочій області вікна. Всі ці повідомлення існують в трьох варіантах, відповідних лівої, правої і середньої кнопок. У багатьох типів миші середня кнопка відсутня, тому вони не можуть порушити відповідні повідомлення.
Нижче представлено оголошення процедури OnMouseMoveQ, r якому зазначені параметри, які використовуються більшістю підпрограм обробки повідомлень миші:
afxmsg void OnMouseMove (UINT nFlags, CPoint point);
Параметр nFlags відповідає натисканню різних віртуальних клавіш. Цей параметр може містити довільну комбінацію наступних прапорів:
• MK_LBUTTON - встановлюється при натисненні лівої кнопки миші
• М КМ У UTTON - встановлюється при натисканні середньої кнопки миші
• MK_RBUTTON - встановлюється при натисненні правої кнопки миші
• MK_CONTROL - встановлюється при натисканні клавіші Ctrl
• MK_SHIFT - встановлюється при натисканні клавіші Shift
Другий параметр, point, містить координати х і в покажчика миші. Ці координати відповідають ті ¬ Кучок позиції активної точки. Вони відраховуються відносно лівого верхнього кута вікна, над яким знаходиться покажчик миші.