Электронная библиотека книг Александра Фролова и Григория Фролова.
Shop2You.ru Создайте свой интернет-магазин
Библиотека
Братьев
Фроловых

Операционная система Microsoft Windows 3.1 для программиста

© Александр Фролов, Григорий Фролов
Том 12, М.: Диалог-МИФИ, 1993, 255 стр.

[Назад] [Содеожание] [Дальше]

3.4. Функция MessageBox

Теперь, когда вы знаете, что такое модальные и немодальные диалоговые панели, вспомним о нашем старом друге - функции MessageBox, с которой вы начали изучение программного интерфейса Windows:

int WINAPI MessageBox(HWND hwndParent, LPCSTR lpszText,
    LPCSTR lpszTitle, UINT fuStyle);

Напомним, что эта функция создает на экране диалоговую панель с текстом, заданным параметром lpszText и заголовком, заданным параметром lpszTitle. Если заголовок указан как NULL, используется заголовок по умолчанию - строка "Error".

Параметр hwndParent указывает идентификатор родительского окна, создающего диалоговую панель. Этот параметр можно указывать как NULL, в этом случае у диалоговой панели не будет родительского окна. Вы можете вызвать функцию MessageBox из функции диалога, в этом случае первый параметр должен содержать идентификатор окна диалоговой панели.

Последний параметр fuStyle определяет стиль и внешний вид диалоговой панели. Вы можете использовать одну из следующих констант, определяющих количество кнопок, расположенных на диалоговой панели и надписи на этих кнопках.

Константа Описание
MB_ABOTRETRYIGNORE Диалоговая панель содержит три кнопки с надписями "Abort", "Retry", "Ignore"
MB_OK Диалоговая панель содержит одну кнопку "OK"
MB_OKCANCEL Две кнопки с надписями "OK", "Cancel"
MB_RETRYCANCEL Две кнопки с надписями "Retry", "Cancel"
MB_YESNO Две кнопки с надписями "Yes", "No"
MB_YESNOCANCEL Три кнопки с надписями "Yes", "No", "Cancel"

К этим константам при помощи логической операции ИЛИ можно добавлять другие константы.

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

Константа Описание
MB_DEFBUTTON1 Первая кнопка используется по умолчанию
MB_DEFBUTTON2 Вторая кнопка используется по умолчанию
MB_DEFBUTTON3 Третья кнопка используется по умолчанию

С помощью следующих трех констант вы можете влиять на модальность диалоговой панели:

Константа Описание
MB_APPLMODAL Создается модальная диалоговая панель. Окно, указанное параметром hwndParent, переводится в неактивное состояние до тех пор, пока пользователь не завершит работу с диалоговой панелью. Пользователь может переключиться на другое приложение. Этот стиль используется по умолчанию
MB_SYSTEMMODAL До тех пор, пока пользователь не завершит работу с диалоговой панелью, все остальные приложения переводятся в неактивное состояние
MB_TASKMODAL Аналогично MB_APPLMODAL за исключением того, что если параметр hwndParent имеет значение NULL, блокируются все окна верхнего уровня, принадлежащие данной задаче. Этот стиль используется тогда, когда идентификатор родительского окна неизвестен, но тем не менее требуется перевести все окна текущего приложения в неактивное состояние до тех пор, пока пользователь не завершит работу с диалоговой панелью

С помощью следующих шести констант вы можете создать в диалоговой панели пиктограмму:

Константа Внешний вид пиктограммы
MB_ICONASTERISK
MB_ICONEXCLAMATION
MB_ICONHAND
MB_ICONINFORMATION
MB_ICONQUESTION
MB_ICONSTOP

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

Константа Название кнопки
IDABORT "Abort"
IDCANCEL "Cancel"
IDIGNORE "Ignore"
IDNO "No"
IDOK "OK"
IDRETRY "Retry"
IDYES "Yes"

[Назад] [Содеожание] [Дальше]