インタフェース > コア インタフェース > 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)ダイアログ ボックスを表示します。 |