CreateDialog 関数を使うと、既存のロールアウト定義をフロータのダイアログに返すことができます。
1 つ以上のロールアウトのコンテナである RolloutFloater を除き、ダイアログはロールアウト自身の特殊な表示形式です。
これは、モーダル表示オプション、バックグラウンド ビットマップ表示およびマウスの各イベント ハンドラといった拡張機能を提供します。
CreateDialog <Rollout> [<width> <height> <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>] \
[autoLayoutOnResize:<boolean>] [parent:<HWND>] オプションの modal: キーワードを True に設定していると、ダイアログ ボックスは、そのダイアログ ボックス内以外のすべてのユーザ インタラクションを無視します。
ダイアログ ボックスを閉じる場合は、 DestroyDialog() を呼び出します。通常この関数は、スクリプトを記述された[OK]ボタンに関連付けます。
escapeEnable キーワードが False に設定されているか、または指定されていない場合、ユーザは[Esc]キーを押して、スクリプト モーダル ダイアログ ボックスを閉じることもできます。
オプションの escapeEnable キーワードを True に設定すると、ダイアログ ボックスで MAXScript エスケープ チェッカが無効になり、「** Interrupted **」のメッセージは表示されません。
オプションの lockHeight キーワードが True の場合、ダイアログ ボックスの高さをインタラクティブに変更することはできません。
オプションの lockWidth キーワードが True の場合、ダイアログ ボックスの幅をインタラクティブに変更することはできません。
ダイアログ ボックスの左上隅が画面の左上隅に対応するように配置します。
ダイアログ ボックスのタイトル バー領域に表示されるメニュー。
スタイル フラグの配列は、次の 1 つまたは複数になります。
#style_border: 2 重境界線を持ち、タイトルのないウィンドウを作成します。
#style_titlebar: タイトル バーを持つダイアログ ボックスを作成します。
#style_toolwindow: ツール ウィンドウを作成します。 このウィンドウにはタイトル バーがあり、浮動ツールバーとして使用できます。ツール ウィンドウには、通常のタイトル バーより小さなタイトル バーがあり、フォントを小さくしてウィンドウのタイトルを表示します。
#style_resizing: ウィンドウのサイズ変更に使用できる太い枠を持つウィンドウを作成します。
#style_minimizebox: 最小化ボタンを持つウィンドウを作成します。
#style_maximizebox: 最大化ボタンを持つウィンドウを作成します。
#style_sysmenu: ウィンドウ メニューがタイトル バーに表示されるウィンドウを作成します。
#style_sunkenedge: ウィンドウが、境界線のエッジがくぼんだ形式の 3D の形状になるように指定します。
autoLayoutOnResize:<boolean>]
3ds Max 2019 の
新機能: true に設定されている場合に、UI またはスクリプトでダイアログ ボックスのサイズを変更すると、ロールアウトに対して autoLayoutOnResize:true も指定されているときは、このロールアウト内のコントロールのレイアウトが更新されます。
既定値は false です。
parent:<HWND> -- default:<MAX_HWND>
指定しない場合、親は 3ds Max のウィンドウ ハンドルに設定され、ダイアログは 3ds Max の UI とともに最小化/最大化されます。
有効な HWND に設定した場合は、ダイアログは指定した親の子ダイアログになり、親とともに最小化/復元されます。また、親にフォーカスがあるときにも常に親の前面に表示されます。
ロールアウト クラスには .hwnd プロパティが用意されているため、簡単にダイアログを別のダイアログの親にすることができます。
ダイアログ ボックスのサイズを変更しているときに呼び出されます。
ダイアログ ボックスのクライアント領域内でマウスを動かしているときに呼び出されます。
ダイアログ ボックス内でマウスの左ボタンを押したときに呼び出されます。
ダイアログ ボックス内でマウスの左ボタンをダブルクリックしたときに呼び出されます。
ダイアログ ボックス内でマウスの中央ボタンを押したときに呼び出されます。
ダイアログ ボックス内でマウスの中央ボタンをダブルクリックしたときに呼び出されます。
ダイアログ ボックス内でマウスの右ボタンを押したときに呼び出されます。
ダイアログ ボックス内でマウスの右ボタンをダブルクリックしたときに呼び出されます。
<Point2>GetDialogPos <Rollout> [removeUIScaling: <bool>] <Point2>GetDialogSize <Rollout> [removeUIScaling: <bool>]
ロールアウトで作成したダイアログ ボックスの、画面の左上からの相対的な位置またはサイズを Point2 形式で返します。
removeUIScaling: true の場合は、高 DPI ディスプレイによって適用される UI のスケールを削除します。既定値は true です。
ロールアウトから作成されたダイアログ ボックスの位置を設定します。位置は、画面の左上隅に対する相対的な位置です。
<Rollout>: ダイアログ作成時、位置の設定に使用するロールアウト。
<Point2>: ダイアログ ボックスに適用される位置です。
3ds Max 2019 の
新機能: applyUIScaling: true の場合は、高 DPI ディスプレイ上の位置に UI スケールを適用します。既定値は true です。
SetDialogSize <Rollout> <Point2> [applyUIScaling: <bool>]
3ds Max 2019 の
新機能: ロールアウトで作成したダイアログ ボックスのサイズを設定します。
<Rollout>: ダイアログ作成時、サイズの設定に使用するロールアウト。
<Point2>: ダイアログ ボックスに適用されるサイズです。
applyUIScaling: true の場合は、高 DPI ディスプレイのサイズに UI スケールを適用します。既定値は true です。
ロールアウトが関連付けられているダイアログ ボックスのバックグラウンドのビットマップを設定します。ロールアウトがダイアログ ボックス内にない場合は、何も行われません。ビットマップの値が「undefined」である場合、現在のビットマップの設定が解除されます。
ロールアウトが関連付けられているダイアログ ボックスのバックグラウンドのビットマップを取得します。ロールアウトがダイアログ ボックス内にない場合は、「undefined」が返されます。