Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практична робота № 2.docx
Скачиваний:
3
Добавлен:
17.11.2019
Размер:
51.34 Кб
Скачать

2.1.4 Карти повідомлень

Використовування карти повідомлень лежить в основі підходу, який реалізується в MFC для програмування Windows-додатків. Суть його полягає в тому, що від розробника вимагається тільки написати функції обробки повідомлень і включити в свій клас карту повідомлень, яка фактично визначає оброблювані повідомлення.

Карта повідомлень формується автоматично при створенні додатку майстром. Згодом, при необхідності, її можна відредагувати уручну. Для цього необхідно знати призначення основних макросів карти повідомлень.

2.1.5 Макроси карт повідомлень

  • DECLARE MESSAGE MAP - використовується у файлі заголовка для оголошення карти повідомлень.

  • BEGIN MESSAGE MAP - початок карти повідомлень в тексті програми.

  • END MESSAGE MAP - кінець карти повідомлень в тексті програми.

  • ON COMMAND - перенаправлення обробки деякої команди функції-члену класу.

  • ON CONTROL - перенаправлення обробки коду сповіщення від елемента управління, введеного програмістом, функції-члену класу.

  • ON MESSAGE - перенаправлення обробки деякого повідомлення, введеного програмістом, функції-члену класу.

  • ON NOTIFY - перенаправлення функції-члену класу обробки заданого коду сповіщення, який супроводиться додатковими даними від елемента управління.

2.1.6 Функція MessageBox (ОкноСообщенія)

Функція MessageBox створює, відображає на екрані і оперує вікном повідомлень. Вікно повідомлень містить визначається програмою повідомлення і заголовок, плюс будь-яку комбінацію зумовлених піктограм і командних кнопок.

Синтаксис

int MessageBox ( HWND hWnd, // дескриптор окна владельца LPCTSTR lpText, // адрес текста в окне сообщений LPCTSTR lpCaption, // адрес заголовка в окне сообщений UINT uType // стиль окна сообщений );

Параметри

hWnd Ідентифікує вікно власника блоку повідомлень, яким воно було створено. Якщо цей параметр має значення порожнього (NULL), у блоку повідомлення немає вікна власника.

lpText Вказує на рядок з символом нуля в кінці, що містить повідомлення, яке повинно бути відображено на екрані.

lpCaption Вказує на рядок з символом нуля в кінці, використовувану для заголовка діалогового вікна. Якщо цей параметр значення порожнього (NULL), то за замовчуванням використовується заголовок Помилка (Error).

uType Визначає встановлення бітів прапорців, які обумовлюють зміст і поведінку діалогового вікна. Цей параметр може бути комбінацією прапорців з нижче наступних груп прапорців.

Визначте один з наступних прапорців, щоб вказати кнопки, що містяться у вікні повідомлень:

  • MB_ABORTRETRYIGNORE - Вікно повідомлення містить три командних кнопки: Перервати (Abort), Повторити (Retry) і Проігнорувати (Ignore).

  • MB_OK - Вікно повідомлення містить одну командну кнопку: OK. Це за замовчуванням.

  • MB_OKCANCEL - Вікно повідомлення містить дві командних кнопки: OK і Відмінити (Cancel).

  • MB_RETRYCANCEL - Вікно повідомлення містить дві командних кнопки: Повторити (Retry) і Відмінити (Cancel).

  • MB_YESNO - Вікно повідомлення містить дві командних кнопки: Так (Yes) і Ні (No).

  • MB_YESNOCANCEL - Вікно повідомлення містить три командних кнопки: Так (Yes), Ні (No) і Відмінити (Cancel).

Визначте один з наступних прапорців, щоб відобразити піктограму у вікні повідомлень:

  • MB_ICONEXCLAMATION, MB_ICONWARNING - У вікні повідомлень з'являється піктограма знаку оклику.

  • MB_ICONINFORMATION, MB_ICONASTERISK - У вікні повідомлень з'являється піктограма, що складається з символу i нижнього регістра в колі.

  • MB_ICONQUESTION - У вікні повідомлень з'являється піктограма у вигляді знака питання.

  • MB_ICONSTOP, MB_ICONERROR, MB_ICONHAND - У вікні повідомлень з'являється піктограма у вигляді стоп-сигналу.

На додаток, ви можете встановлювати нижче перераховані прапорці:

MB_HELP

Додає кнопку Довідка (Help) у вікно повідомлень. Вибір кнопки Help або натискання F1 генерує подія появи Довідки.

MB_RIGHT

Вирівнювання тексту справа.