Функция MessageBox
Declare Function MessageBox Lib "user32.dll" Alias "MessageBoxA" (ByVal hWnd As Long, _
ByVal lpText As String, ByVal lpCaption As String, _
ByVal uType As Long) As Long
MessageBox предназначена для создания, отображения и управления окном сообщения. Окно сообщения содержит определенные приложением сообщение и заголовок, а также любые комбинации предопределенных иконок и управляющих кнопок
Возвращаемое значение
В случае ошибки функция возвращает 0 (используйте GetLastError для получения кода ошибки). В успешном случае функция возвращает один из следующих флажков, определяющих нажатую кнопку
- IDABORT=3
- Нажата кнопка Стоп
- IDCANCEL=2
- Нажата кнопка Отмена (или пользователь закрыл окно клавишей Esc)
- IDCONTINUE=11
- Windows 2000:Нажата кнопка Continue
- IDIGNORE=5
- Нажата кнопка Пропустить
- IDNO=7
- Нажата кнопка Нет
- IDOK=1
- Нажата кнопка OK
- IDRETRY=4
- Нажата кнопка Повтор
- IDTRYAGAIN=10
- Windows 2000:Нажата кнопка Try Again
- IDYES=6
- Нажата кнопка Да
Параметры
- hWnd
- Дескриптор родительского окна для создаваемого окна сообщения. Если данный параметр NULL, окно создается без родителя
- lpText
- Текст, выводимый в окне сообщения
- lpCaption
- Текст, выводимый в заголовке
- uType
- Представляет собой набор битовых флагов, определяющих содержимое и внешний вид окна сообщения. Данный параметр может быть комбинацией флагов из следующих групп флагов:
- MB_ABORTRETRYIGNORE= &H2
- Окно сообщения содержит три кнопки: Стоп, Повтор и Пропустить
- MB_CANCELTRYCONTINUE=&H6
- Windows 2000:Окно сообщения содержит три кнопки: Cancel, Try Again и Continue
- MB_HELP=&H4000
- Добавляется кнопка Справка, при нажатии которой посылается сообщение WM_HELP родительскому окну (определяется параметром hWnd). Данный флаг может использоваться только вместе с другими флагами и не может использоваться отдельно
- MB_OK=&H0
- Окно сообщения содержит только одну кнопку: OK. Данный флаг используется по умолчанию
- MB_OKCANCEL=&H1
- Окно сообщения содержит две кнопки: OK и Отмена
- MB_RETRYCANCEL=&H5
- Окно сообщения содержит две кнопки: Повтор и Отмена
- MB_YESNO=&H4
- Окно сообщения содержит две кнопки: Да и Нет
- MB_YESNOCANCEL=&H3
- Окно сообщения содержит три кнопки: Да, Нет и Отмена
Используйте один из следующих флагов для выбора иконки, которая появятся в окне сообщения:
- MB_ICONASTERISK=MB_ICONINFORMATION=&H40
- В окне сообщения появится иконка, со строчной буквой i, в центре синего круга
- MB_ICONERROR=MB_ICONHAND=MB_ICONSTOP==&H10
- В окне сообщения появится иконка с изображением знака STOP
- MB_ICONEXCLAMATION=MB_ICONWARNING=&H30
- В окне сообщения появится иконка с изображением восклицательного знака
- MB_ICONQUESTION=&H20
- В окне сообщения появится иконка с изображением вопросительного знака
Используйте один из следующих флагов для выбора кнопки по умолчанию,активной кнопки в окне сообщения:
- MB_DEFBUTTON1=&H0
- Активной в окне будет первая кнопка. Это значение используется по умолчанию
- MB_DEFBUTTON2=&H100
- Активной в окне будет вторая кнопка
- MB_DEFBUTTON3=&H200
- Активной в окне будет третья кнопка
- MB_DEFBUTTON4=&H300
- Активной в окне будет четвертая кнопка
Используйте один из следующих флагов для указания модальности окна сообщения:
- MB_APPLMODAL=&H0
- Пользователь должен закрыть окно сообщения до того как продолжит работу в окне, идентификатор которого указан в hWnd. При этом пользователь может работать с другими приложениями. В зависимости от иерархии окон в приложении, пользователь может также работать с некоторыми другими окнами этого же приложения. Все дочернии окна родительского окна автоматически становятся недоступными, но кроме всплывающих (popup) окон. Флаг MB_APPLMODAL используется по умолчанию, если не указан один из MB_SYSTEMMODAL и MB_TASKMODAL
- MB_SYSTEMMODAL=&H1000
- Тоже, что и MB_APPLMODAL за исключением того, что используется стиль WS_EX_TOPMOST. Используйте системно-модальное окно сообщений для оповещения пользователя о серьезных, потенциально опасных ошибках, требующих немедленной реакции со стороны пользователя (например, о недостаточном количестве свободной памяти). Данный флаг не сказывается на возможности пользователя взаимодействовать со всеми окнами, кроме тех, которые связаны с родителем (hWnd)
- MB_TASKMODAL=&H2000
- Тоже, что и MB_APPLMODAL за исключением того, что все окна верхнего уровня связанные с текущей задачей становятся неактивными при условии, что параметр hWnd равен NULL. Используйте данный флаг в случае, когда приложение, либо библиотека не имеет идентификатора окна, но требуется ограничить работу с другими окнами текущего приложения, не нарушая при этом работоспособность других приложений
В дополнение к вышеописанным, Вы можете использовать следующие флаги:
- MB_DEFAULT_DESKTOP_ONLY=&H20000
- Windows NT/2000: То же,что и MB_SERVICE_NOTIFICATION, за исключением того, что система показывает окно сообщения только на Рабочем столе, используемом по умолчанию, в противном случае функция завершится с ошибкой. Используемым по умолчанию является рабочий стол загружаемый после входа пользователя в систему
- MB_RIGHT=&H80000
- Текст в окне сообщения выравнивается по правому краю
- MB_RTLREADING=&H100000
- Текст и заголовок окна сообщения выводятся не слева направо, как обычно, а справо налево в арабской и еврейской системах
- MB_SETFOREGROUND=&H10000
- Окно сообщения выводится на передний план
- MB_TOPMOST=&H40000
- Окно сообщения создается с использованием стиля WS_EX_TOPMOST
- MB_SERVICE_NOTIFICATION=&H200000
- только Windows NT 4.0 и выше, 2000: вызывающая программа является сервисом, сообщающим пользователю о некотором событии. Функция отображает окно сообщения на текущем активном рабочем столе даже в случае, если пользователь не осуществил вход в систему. При установке данного флага необходимо в качестве hWnd использовать значение NULL, чтобы окно сообщения могло появится на рабочих столах, не связанных с конкретным hWnd
- MB_SERVICE_NOTIFICATION_NT3X=&H40000
- Windows NT 3.1- 3.51:данное значение соответствует MB_SERVICE_NOTIFICATION, но для Windows NT 3.51
Пример
Смотри также пример apiform.zip
' Выводим окно сообщения
MessageBox Me.hwnd, "Получилось?","Русский_Проект",MB_OK
Смотри также
MessageBoxEx, MessageBoxIndirect
Категория
Диалоговые окна