
- •Відповіді на контрольні питання до контрольної роботи з ооп Короткий конспект
- •Структура програм для windows.
- •Типи даних win32.
- •Карти повідомлень.
- •Огляд класів вікон бібліотеки mfc. Самий базовий клас бібліотека mfc (клас cobject)
- •Основні складові програм на базі бібліотеки класів mfc.
- •Мінімальна програма для windows.
- •Архітектура програми документ – облік.
- •Обмен данными диалога
- •Модальні та немодальні діалогові вікна.
- •Библиотека mfc
- •Каркас приложения
- •Проект приложения
- •Типы мастеров проектов
- •Имена, используемые в mfc
- •Метод oninitdialog
- •Класс диалоговой панели и его реализация
- •Обмен данными диалога
- •Главный класс приложения
- •Управління пам’яттю в mfc
Карти повідомлень.
Windows взаимодействует с программой, посылая ей сообщения. Все приложения Windows должны организовать так называемый цикл сообщений (обычно внутри функции WinMain()). В этом цикле каждое необработанное сообщение должно быть извлечено из очереди сообщений данного приложения и передано назад в Windows, которая затем вызывает функцию окна программы с данным сообщением в качестве аргумента. В традиционных Windows-программах необходимо самостоятельно создавать и активизировать такой цикл. При использовании MFC это также выполняется автоматически. Однако важно помнить, что цикл сообщений все же существует. Он является неотъемлемой частью любого приложения Windows.
Тип повідомлення Опис
П
овідомлення
Windows Ці повідомлення поСілаються операційною Сістемою. Вони інформують додаток про створення вікна, про його майбутнє знищенні, про події клавіатури і миші, про зміни Сістемних квітів і про всім іншому, що здатно вплинути на виконання програми. Ідентифікатори цих повідомлень звичайно починаються з префікса WM_. Повідомлення Windows як правило обробляються вікном, якому вони послані. Їм може бути і головне вікно додатка, і діалогове вікно
Командні
повідомлення Командні повідомлення генеруються у відповідь на дії користувача, наприклад на вибір пункту меню, щиглик кнопки панелі чи інструментів натискання «швидкої» клавіші. Коли відбувається одне з таких подій, додатку відправляється повідомлення WM_COMMAND з параметром, що залежить від команди. Дані повідомлення передаються каркасом об'єкту додатка. Така маршрутизація команд дозволяє додатку обробити повідомлення в найбільш придатному для цього класі
Командні
повідомлення Дані повідомлення генеруються каркасом додатка, відновлення . таким чином, вони притаманні тільки MFC. Вони користувальницького Сігналізують додатку про зміну стану інтерфейсу елементів інтерфейсу, таких, як пункти меню і кнопки панелей інструментів. Наприклад, перед відображенням меню додатку відправляється відповідне -повідомлення, що дає йому можливість змінити стан цього меню — зробити його доступним, недоступної чи позначеним
Створення карт повідомлень
MFC значно спрощує створення карт повідомлень. Їх підтримують усі клаСі, похідні від CCmdTarget. КлаСі, генерируємі майстром AppWizard, створюються разом з найпростішою картою повідомлень. За допомогою майстра ClassWizard можна додавати нові клаСі, що містять карту повідомлень, і маніпулювати записами таких карт вже існуючих класів. Користаючись цим майстром, Ви заощадите час і не допустите помилок.
Карта повідомлень є в будь-якого класу, що може обробляти повідомлення. А обробляти повідомлення можуть тільки клаСі породжені від CCmdTarget. Карта повідомлень складається з двох частин. Перша визначається в заголовку класу.
class CTestListDlg : public CDialog
{
......
DECLARE_MESSAGE_MAP()
};
І описується у файлі реалізації:
BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
//{{AFX_MSG_MAP(CAboutDlg)
// No message handlers
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
Починається карта повідомлень з макросу BEGIN_MESSAGE_MAP, у якого вказується два параметри: ім'я класу й ім'я класу батька. Закінчується карта повідомлень макросом END_MESSAGE_MAP().
В основних випадках карту повідомлень формує Class Wizard на вкладці Message Map.
Усередині карти повідомлень використовуються наступні макроСі, але це далеко не повний список.
ON_COMMAND - визначає функцію, що буде обробляти повідомлення. ON_COMMAND_RANGE - визначає діапазон повідомлень, що буде обробляти одна функція. ON_CONTROL - визначає функцію обробки повідомлення від елемента керування. ON_CONTROL_RANGE - визначає функцію обробки повідомлень від групи елементів керування. ON_MESSAGE - визначає функцію обробки повідомлення користувача. ON_OLECMD - визначає функцію обробки повідомлення від OLE контейнера. ON_REGISTERED_MESSAGE - визначає функцію обробки зареєстрованого користувачем повідомлення. ON_UPDATE_COMMAND_UI - визначає функцію, що буде оброблятися у відповідь на повідомлення про відновлення користувальницького інтерфейсу. ON_UPDATE_COMMAND_UI_RANGE - визначає функцію, що буде оброблятися у відповідь на групу повідомлень про відновлення користувальницького інтерфейсу.