Приложение 13.
Параметры, определяющие внешний вид диалогового окна

    Здесь мы перечислим параметры, используемые при задании диалогового окна.

    В таблице 1 перечислены значения, позволяющие определять типы кнопок и значков, выводимых в диалоговом окне.

Таблица 1. Параметры, задающие внешний вид диалогового окна
ТИПЫ КНОПОК
Значение Результат
0 Отображается одна кнопка OK.
1 Отображаются кнопки OK и Отмена (Cancel).
2 Отображаются кнопки Стоп(Abort), Повторить(Retry) и Пропустить(Ignore).
3 Отображаются кнопки Да(Yes), Нет(No) и Отмена(Cancel).
4 Отображаются кнопки Да(Yes) и Нет(No).
5 Отображаются кнопки Повторить(Retry) и Отмена(Cancel).
ТИПЫ ЗНАЧКОВ
Значение Результат
0 Никакой значок не отображается
16 Отображается значок Стоп:
32 Отображается значок Вопрос:
48 Отображается значок Восклицание:
64 Отображается значок Информация:
ТИПЫ ЗНАЧКОВ
Значение Результат
0 Первая кнопка.
256 Вторая кнопка.
512 Третья кнопка.

    Например, если необходимо отобразить диалоговое окно с тремя кнопками Да(Yes), Нет(No) и Отмена(Cancel) (значение подпараметра равно 3), со значком Восклицание (значение подпараметра равно 48) и третьей кнопкой Отмена(Cancel) по умолчанию (значение подпараметра равно 512), то второй параметр у функции MsgBox() будет равен 563 (3+48+512):

X = MsgBox ("Вы действительно хотите завершить процесс?", 563, "Сообщение")

    Результат выполнения приведен на рисунке 1:


Рис.1. Результат выполнения функции MsgBox()

    Функция MsgBox() возвращает целочисленное значение, по которому можно определить, какая кнопка была нажата, и выполнить необходимые действия. Коды возврата функции приведены в таблице 2.

Таблица 2. Коды возврата функции MsgBox()
Возвращаемое значение Нажата кнопка
1 ОК
2 Cancel (Отмена)
3 Abort (Стоп)
4 Retry (Повтор)
5 Ignore (Пропустить)
6 Yes (Да)
7 No (Нет)

    Отметим важную особенность, характерную для языка VBScript. Если не требуется сохранить возвращаемое функцией значение, то обращение к ней нужно оформлять без использования скобок. Например, если возвращаемое приведенной выше функцией MsgBox() значение не нужно сохранить, то конструкция:

MsgBox ("Вы действительно хотите завершить процесс?", 563, "Сообщение")

скорее всего, вызовет сообщение об ошибке или не будет выполнена ввобще. Напротив, конструкция:

MsgBox "Вы действительно хотите завершить процесс?", 563, "Сообщение"

будет выполнена верно.