messageBox <message_string> [title: <window_title_string>] [beep: <boolean>]
Отображает диалоговое окно с текстом сообщения и кнопкой OK. Параметр title определяет заголовок окна,
параметр beep – звуковой сигнал (true по умолчанию).
queryBox <message_string> [title: <window_title_string>] [beep: <boolean>]
Отображает диалоговое окно с текстом сообщения и кнопками Yes и No. Эта функция возвращает true,
если пользователь нажимает Yes и false – если No.
yesNoCancelBox <message_string> [title: <window_title_string>] [beep: <boolean>]
Отображает диалоговое окно с текстом сообщения и кнопками Yes и No и Cancel. Функция возвращает #yes, #no или #cancel,
в зависимости от нажатой кнопки.
Примеры: messageBox "Этого делать не нужно"; if queryBox "Хотите продолжить?" beep:false then print "Beep-beep disabled"
Плавающие диалоговые окна
Функция CreateDialog конвертирует свиток в плавающее окно. В отличие от плавающего свитка (RolloutFloater), плавающее окно состоит только из одного свитка. Эта особенность позволяет диалоговому окну иметь свойства модального, отображать фоновую картинку и обрабатывать события мыши в окне.
Синтаксис:
CreateDialog <Rollout> [<height> <width> <position_x> <position_y>] \
[pos:<Point2>] [width:<integer>] [height:<integer>] \
[bgcolor:<color>] [fgcolor:<color>] \
[bitmap:<bitmap>] [bmpstyle:<bmpstyle>] \
[menu:<RCMenu>] [style:<array>] [modal:<boolean>] \
[escapeEnable:<boolean>] [lockHeight:<boolean>] [lockWidth: <boolean>]
Если ключ modal:<boolean> равен true, диалог игнорирует любые действия пользователя, кроме происходящих в окне. Для закрытия окна применяется функция DestroyDialog() обычно ее вызывают в скрипте, назначенном на кнопку OK. Также пользователь может закрыть модальное окно нажав кнопку Esc, но только в том случае, когда для ключа escapeEnable установлено значение false или этот ключ вообще не задан.
Если необязательный (вообще говоря все ключи внутри [] - квадратных скобок являются необязательными) ключ escapeEnable равен true, то проверка в MAXScript на нажатие кнопки Esc для окна отключается, таким образом блокируется появление окне с сообщением "MaxScript Interrupt".
Если ключ lockHeight равен true, высота диалога не может быть изменена интерактивно. Ширина окна аналогично управляется ключом lockWidth.
Параметры:
<Rollout> - переменная, определяющая свиток, из которого создается диалоговое окно.
[pos:<Point2>] --ПО УМОЛЧАНИЮ: В ЦЕНТРЕ ОКНА 3ds max. Местоположение левого верхнего угла диалога относительно левого верхнего угла экрана.
[width:<integer>] --ПО УМОЛЧАНИЮ: 200 Ширина диалогового окна.
[height:<integer>] --ПО УМОЛЧАНИЮ: динамически изменяющаяся в зависимости от содержимого свитка Высота диалогового окна.
[bgcolor:<color>] --ПО УМОЛЧАНИЮ: (<system button color> - СИСТЕМНЫЙ ЦВЕТ КНОПКИ) Цвет фона диалогового окна.
[fgcolor:<color>] --ПО УМОЛЧАНИЮ: (color 0 0 0) Цвет переднего плана диалогового окна (цвет стандартного текста).
[bitmap:<bitmap>] --ПО УМОЛЧАНИЮ: undefined Фоновое изображение диалогового окна.
[bmpstyle:<key>] --ПО УМОЛЧАНИЮ: #bmp_center Способ отображения фоновой картинки. Может быть одним из следующих:
#bmp_center --ПО ЦЕНТРУ
#bmp_tile --ПОВТОРЯЮЩИЙСЯ ФОН
#bmp_stretch --РАСТЯНУТЫЙ ФОН
[menu:<RCMenu>] --ПО УМОЛЧАНИЮ: undefined Меню, отображающееся в области заголовка диалогового окна.
[style:<array>] --ПО УМОЛЧАНИЮ: #(#style_titlebar, #style_border, #style_sysmenu) Массив стилей, может включать в себя одно или несколько следующих ключевых слов:
#style_border создает диалоговое окно с двойной границей но без заголовка.
#style_titlebar создает диалоговое окно с заголовком.
#style_toolwindow создает диалоговое окно инструментариев которое имеет строку заголовка и предназначено для использования в качестве плавающей панели инструментов. Строка заголовка панели инструментов короче строки обычного заголовка, а сам заголовок печатается меньшим по размеру шрифтом.
#style_resizing создает диалоговое окно с толстой рамкой, которая может использоваться для изменения размеров окна.
#style_minimizebox создает диалоговое окно с кнопкой минимизации.
#style_maximizebox создает диалоговое окно с кнопкой максимизации.
#style_sysmenu создает диалоговое окно с оконным меню, находящимся в строке заголовка.
#style_sunkenedge задает для окна псевдотрехмерный вид, когда ребра границы выглядят выступающими.
Примечание: если ключевой параметр масива стилей не задан, по умолчанию используется следующий набор стилей: #style_titlebar, #style_border, #style_sysmenu.
События:
on <Rollout> open do вызывается в момент открытия диалогового окна.
on <Rollout> close do вызывается в момент закрытия диалогового окна.
on <Rollout> moved <Point2> do вызывается во время перемещения диалогового окна.
on <Rollout> resized <Point2> do вызывается во время изменения размеров диалогового окна.
on <Rollout> mousemove <Point2> do вызывается во время перемещения мыши внутри пользовательской области окна.
on <Rollout> lbuttondown <Point2> do вызывается в момент нажатия левой кнопки мыши в области окна.
on <Rollout> lbuttonup <Point2> do вызывается в момент отпускания левой кнопки мыши.
on <Rollout> lbuttondblclk <Point2> do вызывается в момент двойного щелчка левой кнопкой мыши в области окна.
on <Rollout> mbuttondown <Point2> do вызывается в момент нажатия средней кнопки мыши в области окна.
on <Rollout> mbuttonup <Point2> do вызывается в момент отпускания средней кнопки мыши.
on <Rollout> mbuttondblclk <Point2> do вызывается в момент двойного щелчка средней кнопкой мыши в области окна.
on <Rollout> rbuttondown <Point2> do вызывается в момент нажатия правой кнопки мыши в области окна.
on <Rollout> rbuttonup <Point2> do вызывается в момент отпускания правой кнопки мыши.
on <Rollout> rbuttondblclk <Point2> do вызывается в момент двойного щелчка правой кнопкой мыши в области окна.
Примечание: значение <Point2> при определении событий хранит координаты мыши в пределах пользовательской области диалогового окна. Координаты [0,0] соответствует верхнему левому углу окна.
Методы, связанные с параметрами диалогового окна
<Point2>GetDialogPos <Rollout>
Возвращает координаты диалогового окна относительно левого верхнего угла экрана в формате Point2.
SetDialogPos <Rollout> <Point2>
Устанавливает координаты диалогового окна относительно левого верхнего угла экрана. Здесь <Rollout> - свиток, используемый для создания диалогового окна, <Point2> - позиция, где находится диалоговое окно.
<Point2>GetDialogSize <rollout>
Возвращает размеры пользовательской области окна. Эквивалент point2 <rollout>.width <rollout>.height
SetDialogBitmap <rollout> <bitmap>
Устанавливает фоновое изображение для диалогового окна, построенного на основе свитка. Не работает, если свиток не является диалоговым окном. Значение undefined для изображения очистит текущий фон.
<bitmap>GetDialogBitmap <rollout>
Возвращает изображение фона диалогового окна, построенного на основе свитка. Если свиток не является диалоговым окном, возвращается значение undefined.
DestroyDialog <Rollout> Закрывает диалоговое окно, созданное методом CreateDialog.