Функция MsgBox

 ↑  ←  Описание функции


MsgBox

Отображает простое окно сообщения с опциональным временем отображения.

MsgBox ( flag, "title", "text" [, timeout = 0 [, hwnd ]] )

Параметры

flag Параметр указывает на тип окна сообщения и возможные комбинации отображаемых кнопок. См. примечания.
title Заголовок окна сообщения.
text Текст окна сообщения.
timeout [необязательный] Время ожидания (в секундах), по истечении которого MsgBox будет автоматически закрыт (по умолчанию 0, что означает, что время отображения не ограничено).
hwnd [необязательный] Дескриптор родительского окна. Предотвращает доступ к родительскому окну, пока существует MsgBox.

Возвращаемое значение

Успех:Возвращает ID нажатой кнопки.
Ошибка:Возвращает -1, если истекло время отображения окна сообщения.

Нажатая кнопкаВозвращаемое значение (ID нажатой кнопки)
OK1
Отмена (Cancel)2
Прервать (Abort)3
Повтор (Retry)4
Пропустить (Ignore)5
Да (Yes)6
Нет (No)7
Повторить (Try again) **10
Продолжить (Continue) **11

Примечания

Параметр flag может быть комбинацией следующих значений:

flag, DecОтображаемые кнопкиflag, Hex
0OK0x0
1OK и Отмена0x1
2Прервать, Повтор и Пропустить0x2
3Да, Нет и Отмена0x3
4Да и Нет0x4
5Повтор и Отмена0x5
6 **Отмена, Повторить, Продолжить0x6
Отображаемая иконка
0(Нет)0x0
16"Стоп"0x10
32"Знак вопроса"0x20
48"Предупреждение"0x30
64"Информация", с 'i' в кружке0x40
Выделенная кнопка по умолчанию, вызываемая по Enter
0Первая кнопка0x0
256Вторая кнопка0x100
512Третья кнопка0x200
Модальность
0Приложение (Application)0x0
4096Системная, поверх всех окон (System modal)0x1000
8192Блокирует родительское окно (Task modal)0x2000
Другое
0(ничего специального)0x0
262144MsgBox имеет атрибут "поверх всех окон"0x40000
524288Заголовок и текст выравниваются по правому краю0x80000

** Доступно только в Windows 2000/XP и выше.

К примеру, чтобы указать окно SYSTEMMODAL с кнопками Да/Нет, следует указать параметр flag равным 4096+4 (или 4100). При использовании шестнадцатеричного значения - 0x1000+0x4 (или 0x1004).

Окно сообщения появляется в центре экрана с размерами, пропорциональными выводимому тексту. Однако заголовок может быть обрезан при использовании флага SYSTEMMODAL (4096).

Если параметр "title" равен ключевому слову Default, будет использован макрос @ScriptName

См. также

InputBox, ToolTip, TrayTip, SplashTextOn

Пример

MsgBox(4096, "Заголовок", "Это диалоговое окно закроется по таймауту через 10 секунд", 10)

; Пример выбора из 2-х действий
If MsgBox(4 + 32, 'Сообщение', 'Продолжить?') = 6 Then
    MsgBox(4096, 'Результат', 'Нажата кнопка "Да"')
Else
    MsgBox(16, 'Результат', 'Нажата кнопка "Нет"')
EndIf

; Пример выбора из 3-х действий
Switch MsgBox(6 + 48, 'Сообщение', 'Сделайте выбор.')
    Case 2
        $sText = 'Нажата кнопка "Отмена"'
    Case 10
        $sText = 'Нажата кнопка "Повторить"'
    Case 11
        $sText = 'Нажата кнопка "Продолжить"'
EndSwitch
MsgBox(64, 'Результат', $sText)