スクリプト化された右クリック メニュー

MAXScript には、カスタム右クリック メニューを作成するためのクラス、関数、特別構文のセットがあります。

機能の履歴

3ds Max 4 以前の、クアッドメニュー システムがまだ存在していないバージョンでは、スクリプトによる右クリック メニューを既存の 3ds Max ユーザ インタフェースに組み込むことができました。クリックメニューの一般的な用途は、MAXScript で作成されたツールをすばやく選択することでした。これらのツールには、通常はユーザ インタフェースはありませんが、右クリック メニューにダイアログ ボックスやロールアウト フロータ ウィンドウを作成してユーザ インタフェースを表示させることができました。

廃止予定のメソッドの例とリストについては、「廃止予定の RCmenu メソッド」のトピックを参照してください。

現在の用途

3ds Max 4 で導入されたクアッドメニュー システムによって、スクリプトによるカスタム右クリック メニューを登録することはできなくなりましたが、スクリプトによるツール内でメニュー自体を使用することは可能です。

  • 以下で説明する popUpMenu() メソッドは現在も使用可能で、イベント ハンドラまたは macroScript から呼び出してマウス カーソルの下に右クリック メニューを表示することができます。

  • createDialog() メソッドを使用してロールアウトから作成されたスクリプトによるダイアログ ボックスには、オプションの menu: パラメータを使用できます。このパラメータは、RCmenu を受け入れ、 RCmenu がダイアログの上部にメニュー バーとして表示されます。詳細は、「CreateDialog 」のトピックを参照してください。

作成

スクリプト化された右クリック メニューは、MAXScript の RCMenu 定義構文を使って作成されます。その後右クリック メニューを 3ds Max に登録します。トップレベルの構文は、次のとおりです。

rcmenu <var_name> ( <rcmenu_body> )

ここで、

<var_name> とは、右クリック メニューを表す rcmenu 値を保持するために自動的に作成されたグローバル変数の名前です。

<rcmenu_body> は、必ずカッコで囲まれていて、関数およびユーザによる操作を処理するイベント ハンドラとともにユーティリティに表示されるメニュー項目を定義する句のシーケンスです。これらの句の詳細は、RCMenu 句を参照してください。

メソッド

popUpMenu <RCMenu> [pos:<Point2>] [rollout:<Rollout>] [align:<key>]

このメソッドは、画面上の任意の場所でメニューをポップアップします。コントロールは以下のとおりです。

<RCMenu>: すべての RCMenu が定義されます。これは登録する必要はありません。

[pos:<Point2>]: メニューがポップアップするポイントで、ロールアウトまたは画面のいずれかの相対位置。 (既定値: 現在のマウスの位置からポップアップ)

[rollout:<Rollout>]: これにより、メニューはロールアウトのローカル座標系からポップアップします。undefined を指定すると、メニューは画面の左上隅に相対的にポップアップします。(既定値: undefined)

[align:<key>]: 次のいずれかを指定できます(既定値: #align_topleft )。

 #align_topleft #align_topcenter #align_topright #align_bottomleft #align_bottomcenter #align_bottomright #align_vcenterleft #align_vcentercenter #align_vcenterright

スクリプト化された右クリック メニューの実行時にランタイム エラーが発生した場合は、エラー メッセージが[リスナー](Listener)に表示されます。右クリック メニューは無効にはなりません。

関連事項