インタフェース: UIAccessor

UIAccessor コア インタフェースは、データを収集して 3ds Max ユーザ インタフェースのダイアログ ボックスやポップアップ ウィンドウと相互作用するためのメソッドを提供します。このインタフェースをインタフェース: DialogMonitorOPS と組み合わせることによって、コールバック機能を使用した UI 処理の自動化を行うこともできます。

3ds Max 9 以降 で使用可能です。

   

メソッド:

<string>UIAccessor.GetWindowText <HWND>hwnd 	 

指定されたハンドルを持つウィンドウのキャプションを返します。

   

<string>UIAccessor.GetWindowClassName <HWND>hwnd   

指定されたハンドルを持つウィンドウのウィンドウ クラス名を返します。

   

<integer>UIAccessor.GetWindowResourceID <HWND>hwnd 

指定されたハンドルを持つウィンドウのウィンドウ リソース ID を返します。

   

<HWND by value array>UIAccessor.GetChildWindows <HWND>hwnd 

指定されたハンドルを持つウィンドウのすべての子ウィンドウのハンドルを持つ配列を返します。子ウィンドウの子ウィンドウがある場合は、それらの子ウィンドウも列挙されます。

   

<HWND by value array>UIAccessor.GetPopupDialogs() 

ポップアップ ダイアログのハンドルの配列を返します。

   

<HWND>UIAccessor.GetParentWindow <HWND>hwnd 

指定されたハンドルを持つウィンドウの親ウィンドウのハンドルを返します。

   

<HWND>UIAccessor.GetFirstChildWindow <HWND>hwnd 

指定されたハンドルを持つウィンドウの最初の子ウィンドウのハンドルを返します。

   

<HWND>UIAccessor.GetPrevWindow <HWND>hwnd 

指定されたハンドルを持つウィンドウと同じ親をもつ、直前の兄弟のハンドルを返します。

   

<HWND>UIAccessor.GetNextWindow <HWND>hwnd 

指定されたハンドルを持つウィンドウと同じ親をもつ、次の兄弟のハンドルを返します。

   

<bool>UIAccessor.IsWindow <HWND>hwnd 

指定されたハンドルを持つ UI 要素がウィンドウである場合は true、そうでない場合は false を返します。

   

<string>UIAccessor.GetWindowDllFileName <HWND>hwnd 

指定されたハンドルを持つウィンドウの DLL ファイル名を返します。

   

<string>UIAccessor.GetWindowDllDescription <HWND>hwnd 

指定されたハンドルを持つウィンドウの DLL 説明文字列を返します。

   

<void>UIAccessor.CloseDialog <HWND>hwnd 

指定されたウィンドウ ハンドルを持つダイアログ ボックスを閉じます。

   

<void>UIAccessor.PressDefaultButton() 

現在アクティブなダイアログ ボックスの既定値のボタンを押します。このメソッドは、[Enter]キーを押しながらシミュレートします。

   

<void>UIAccessor.PressButton <HWND>hwnd 

指定されたハンドルを持つボタンを押します。

   

<bool>UIAccessor.PressButtonByName <HWND>hwnd <string>name 

最初の引数として指定されたハンドルを持つダイアログ ボックスの、2 番目の引数と等しい名前を持ったボタンを押します。

   

<bool>UIAccessor.SetWindowText <HWND>hwnd <string>text 

指定されたハンドルを持つダイアログ ボックスのタイトル テキストを設定します。

   

<bool>UIAccessor.SendMessageID <HWND>hwndDlg <enum>ID 

ID enums: {#IDOK|#IDCANCEL|#IDABORT|#IDRETRY|#IDIGNORE|#IDYES|#IDNO|#IDCLOSE} 

指定されたハンドルを持つウィンドウに、2 番目の引数で指定されたメッセージ ID を送信します。

   

<bool>UIAccessor.SendMessage <HWND>hwndDlg <integer>MessageID <integer>wParam <integer>lParam 

最初の引数として指定されたハンドルを持つウィンドウに、2 番目、3 番目、および 4 番目の引数で指定された整数のメッセージ ID、wParam、および IParam を送信します。

DialogMonitorOPS.unRegisterNotification id:#eyeInTheSky
 
fn dmnotification =
(
 WindowHandle = DialogMonitorOPS.GetWindowHandle()
 format "Dialog Window Handle: %\n" WindowHandle
 format "Dialog Name: %\n" (UIAccessor.GetWindowText WindowHandle)
 format "Window Class Name: %\n" (UIAccessor.GetWindowClassName WindowHandle)
 format "Window Resource ID: %\n" (UIAccessor.GetWindowResourceID WindowHandle)
 format "Is Window: %\n" (UIAccessor.isWindow WindowHandle)
 format "Window DLL Filename: %\n" (UIAccessor.GetWindowDllFileName WindowHandle)
 format "Window DLL Description: %\n" (UIAccessor.GetWindowDllDescription WindowHandle)
 UIAccessor.SetWindowText WindowHandle" All Your Windows Are Belong To Us"
 format "=====================\n"
 true
)
DialogMonitorOPS.RegisterNotification dmnotification id:#eyeInTheSky
DialogMonitorOPS.Enabled = true
DialogMonitorOPS.ShowNotification()

上記のコードを評価して[メイン メニュー](Main Menu) > [カスタマイズ](Customize) > [ユーザ インタフェースをカスタマイズ](Customize User Interface)を開いた場合、出力は以下のようになります。

Dialog Window Handle: 3213306
Dialog Name:
Window Class Name: Menu
Window Resource ID: 0
Is Window: true
Window DLL Filename: C:\Program Files\Autodesk\3ds Max 2008\3dsmax.exe
Window DLL Description:
=====================
Dialog Window Handle: 2033898
Dialog Name:
Window Class Name: SysShadow
Window Resource ID: 0
Is Window: true
Window DLL Filename: C:\Program Files\Autodesk\3ds Max 2008\3dsmax.exe
Window DLL Description:
=====================
Dialog Window Handle: 3278842
Dialog Name: Customize User Interface
Window Class Name: Dialog
Window Resource ID: 0
Is Window: true
Window DLL Filename: C:\Program Files\Autodesk\3ds Max 2008\CustDlg.dll
Window DLL Description:
=====================

最初のブロックは、カスタマイズ メニューに関する情報を返します。メニューはダイアログ名を持ちませんが、これも一種のウィンドウです。

2 番目のブロックは、メニューの影を表示します(MS Windows の設定で有効になっている場合)。

3 番目のブロックは、実際の[ユーザ インタフェースをカスタマイズ](Customize User Interface)ダイアログ ボックスを表示します。

関連事項