Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ch-11.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.26 Mб
Скачать

Окна сообщений

Давайте немного передохнем. Мы рассмотрели способы создания собственных элементов управления в окнах диалога. Теперь остановимся на альтернативе окнам диалога — окнах сообщений (message boxes). Мы использовали диалоговые окна раньше, в главе 7, но подробно они не были рассмотрены.

Окно сообщения является естественной и легко используемой альтернативой окну диалога, когда необходимо получить простой ответ от пользователя. Обычно вызов функции выглядит следующим образом:

iItem = MessageBox (hwndParent, szText, szCaption, iType) ;

Окно сообщения имеет заголовок (строку символов szCaption), одну или более строк текста (szText), одну или более кнопок и (необязательно) предопределенный значок. Одна из кнопок определяется по умолчанию. Возвращаемое значение iItem функции MessageBox связано с кнопкой, которая была нажата.

Как правило, параметром hwndParent является описатель того окна, которое создает окно сообщения. Если окно сообщения закрывается, то фокус ввода оказывается в этом окне. Если описатель окна недоступен, или если вам не нужно, чтобы фокус ввода получило одно из окон вашего приложения, то вместо этого описателя можно использовать NULL. Если окно сообщений используется внутри окна диалога, то в качестве этого параметра используйте описатель окна диалога (который мы назвали hDlg).

Параметр szText — это дальний указатель на оканчивающуюся нулем строку, которая отображается внутри окна сообщения. При необходимости Windows разбивает этот текст на несколько строк. Можно включить в текст символы табуляции, а используя символ возврата каретки или перевода строки, или оба вместе, можно разбить текст на строки по своему усмотрению. Строка szCaption обычно соответствует имени приложения.

Параметр iType представляет собой набор флагов, связанных с помощью поразрядного оператора OR языка С. Первая группа флагов задает кнопки, которые появляются в нижней части окна сообщений: MB_OK (по умолчанию), MB_OKCANCEL, MB_YESNO, MB_YESNOCANCEL, MB_RETRYCANCEL, MB_ABORTRETRYIGNORE и MB_HELP. Эти флаги позволяют использовать максимум четыре кнопки. Вторая группа флагов задает то, какая из этих четырех кнопок по умолчанию получит фокус ввода: MB_DEFBUTTON1 (по умолчанию), MB_DEFBUTTON2, MB_DEFBUTTON3 и MB_DEFBUTTON4.

Третья группа флагов задает значок, который появляется в окне сообщений: MB_ICONINFORMATION (что аналогично MB_ICONASTERISK), MB_ICONWARNING (аналогично MB_ICONEXCLAMATION), MB_ICONERROR (аналогично MB_ICONSTOP и MB_ICONHAND) и MB_ICONQUESTION. Значки по умолчанию не задаются. Если не будет установлен один из этих флагов, то в окне сообщений не будет значка. Информационный значок (MB_ICONINFORMATION) следует использовать для сообщения состояния, восклицательный знак (MB_ICONWARNING) — для напоминания, вопросительный знак (MB_ICONQUESTION) — для выяснения намерений пользователя и, наконец, значок ошибки (MB_ICONERROR) — для информирования пользователя о наличии серьезных проблем.

Четвертый набор флагов определяет, является ли окно сообщения модальным окном приложения (в этом случае пользователь может переключиться на другое приложение без закрытия окна сообщения), или это системное модальное окно, которое требует от пользователя, прежде чем что-то сделать, закрыть окно сообщения. Этими флагами являются MB_APPLMODAL (по умолчанию) и MB_SYSTEMMODAL. И наконец, можно использовать пятый флаг MB_NOFOCUS, что приводит к выводу окна сообщений без установки на него фокуса ввода.

В зависимости от нажатой кнопки, окно сообщений возвращает один из следующих идентификаторов: IDOK, IDCANCEL, IDYES, IDNO, IDRETRY, IDIGNORE, IDHELP или IDABORT.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]