"Microsoft ListView Control 6.0 (SP4)" "MSComctlLib.ListViewCtrl.2" "{BDD1F04B-858B-11D1-B16A-00C0F0283628}"
ActiveX コントロールは、DotNet フレームワークとそのコントロールを考慮して、最新バージョンの Microsoft Windows オペレーティング システムで非推奨となりました。
MAXScript では引き続き ActiveX コントロールがサポートされますが、これらは MAXScript にアクセス可能なシステムにインストールおよび登録する必要があります。
ActiveX コントロールの代わりに、MAXScript では、3ds Max 9 以降において DotNet コントロールがサポートされます。
既存の ActiveX コードを DotNet に切り替える例につては、「ActiveX ListView コントロールの DotNet ListView コントロールへの変換」を参照してください。
ListView ActiveX コントロールは、MAXScript ロールアウトで最もよく使われる ActiveX コントロールの 1 つです。このコントロールは非常に柔軟でカスタマイズすることができるため、この章で詳細に説明します。リストやスプレッドシートの様なユーザ インタフェース コントロールを作成する場合に使用できます。
このプロパティは ListItem にアクセスします。ListItem は Listview 内の行を表し、次のプロパティとメソッドが用意されています。
ListView コントロール内の ListItem の数を取得/設定します。
インデックスで指定された ListItem を返します。インデックスの基数は 1 です。
ListView コントロールに新しい ListItem を追加します。
このプロパティは、ListView の列ヘッダにアクセスします。
ListView コントロール内の列ヘッダの数を取得/設定します。
インデックスで指定された列ヘッダを ListView コントロールから取得します。インデックスの基数は 1 です。
単一列ヘッダのプロパティのリストについては「ColumnHeader のプロパティとメソッド」を参照してください。
列ヘッダを消去します。すべての列ヘッダが ListView から削除されます。
インデックスで指定された列ヘッダを削除します。インデックスの基数は 1 です。
.Add Index:undefined Key:undefined Text:undefined Width:undefined Alignment:undefined Icon:undefined
このプロパティによって、列ヘッダを有効と無効を切り替えます。true に設定した場合、列ヘッダは非表示になります。false に設定した場合、列ヘッダは表示されます。 .View プロパティが #lvwReport に設定されている場合にのみ、列ヘッダを使用できます。
true に設定した場合、ユーザは列をドラッグして、順序を指定することができます。false(既定値)に設定した場合、列の順序はロックされ、インタラクティブに変更できません
ListView コントロールのビュー タイプを取得/設定します。
ListView コントロールの外観を取得/設定します。#cc3D が既定値です。
.Appearance が #ccFlat に設定されている場合に境界スタイルをコントロールします。 #ccFixedSingle に設定した場合、単一ピクセルの境界線が ListView の周囲に描かれます。
ListView コントロールの配置をコントロールします。既定値は #lvwNone です。
ListItem をこのプロパティに割り当てると、この ListItem はハイライト表示されます(選択されていることを示していますが、選択された状態を示すフラグは設定されません)。このハイライトは、選択ハイライトには影響されません。DropHighlight が再び undefined に設定されるまで、指定された ListItem はハイライト表示されます。
以下のスクリーンショットでは、Teapot01 と表された ListItem は DropHighlight に割り当てられたもので、Box01 と表された ListItem はマウスで選択されたものです。
ラベル(これが ListItem の最初の列のテキスト)の編集をコントロールします。既定値は #lvwAutomatic です。
#lvwAutomatic に設定した場合、ユーザはこの項目をクリックして選択してからもう一度ラベル位置でクリックすると、テキスト フィールドが開き、任意のテキストを入力できます。
#lvwManual に設定した場合、開発者が .StartLabelEdit() メソッドを使用したときにのみ、ラベル編集を開始できます。
警告: |
ラベル テキスト フィールドに入力するには、3ds Max のキーボード ショートカット(アクセラレータ)を無効にする必要があります。詳細は、「ActiveX - 3ds Max キーボード アクセラレータを無効にする」を参照してください。 |
true に設定した場合、各 ListItem の最初の列にチェックボックスが表示されます。false(既定値)に設定した場合、ListItem ラベルだけが表示されます。
既定値の true に設定した場合は、ListItems の選択、ラベルの編集、チェックボックスのチェック、列幅の調整などができます。false に設定すると、ListItems は「フリーズ」され、どのような方法でも変更できなくなります。
ListView の描画に使用するフォアグラウンド(テキスト)カラーをコントロールします。
ListView の描画に使用するバックグラウンド カラーをコントロールします。
以下のスクリーンショットには、既定の白色のバックグラウンド(.BackColor プロパティを設定しない場合)、.BackColor = color 225 215 210、.BackColor = color 215 225 210、および .BackColor = color 210 215 225 の各例を示しています。
false(既定値)に設定した場合、グリッド線は描かれません。true に設定した場合、行および列を区切るグリッド線が描かれます。
false(既定値)に設定した場合、スクロールバーが表示されます。true に設定した場合、スクロールバーは表示されません。矢印キーを使用して選択を移動すれば上下方向にスクロールできますが、水平方向にはスクロールできません。
バックグラウンドに画像を割り当てることができます。IPuctureDisp 値として ActiveX コントロールに画像を渡す方法の詳細については、「loadPicture」を参照してください。
以下の例は、Photoshop で作成し、24 bit の BMP ファイルでディスクに保存された 500 x 200 ピクセル サイズの黄色から赤色へのグラデーション画像を、次の行を使用して.Picture プロパティに渡したものです。
lv.picture = loadPicture "c:/3dsmax6/images/activex_gradient.bmp"
.PictureAlignment : ListPictureAlignmentConstants( #lvwTopLeft | #lvwTopRight | #lvwBottomLeft | #lvwBottomRight | #lvwCenter | #lvwTile )
.Picture プロパティに割り当てられた画像の位置合わせをコントロールします。
テキスト バックグラウンドの外観をコントロールします。#lvwOpaque に設定した場合、上の例は次のように表示されます。
true に設定した場合、項目またはサブ項目を選択すると、行全体が選択されます。false に設定した場合、ListItem (最初の列)だけが選択されます。
true に設定した場合、ユーザは複数の ListItem を同時に選択できます。false(既定値)に設定した場合、1 度に 1 つの ListItem しか選択できません。
true に設定した場合、選択は表示されません。false に設定した場合、選択が表示されます。
true に設定した場合、マウスが ListItems の上に移動すると、ListItems がハイライト表示されますfalse(既定値)に設定した場合、ListItem の上にマウスを移動しても影響はありません。
true に設定した場合、ListItem の上にマウスを移動したときに、自動的にこの ListItem が選択されます。false(既定値)に設定した場合、ユーザがマウスでクリックしたときにのみ、ListItem は選択されます。
マウス アイコンを IPictureDisp 値で返します。MAXScript では設定できません。
.MousePointer : MousePointerConstants( #ccDefault | #ccArrow | #ccCross | #ccIBeam | #ccIcon | #ccSize | #ccSizeNESW | #ccSizeNS | #ccSizeNWSE | #ccSizeEW | #ccUpArrow | #ccHourglass | #ccNoDrop | #ccArrowHourglass | #ccArrowQuestion | #ccSizeAll | #ccCustom )
マウス ポインタが ListView Control の上にある場合のマウス ポインタのタイプを取得/設定します。スクリプト開発者は、このページで詳しく説明するマウス イベントを使用し、基礎となる内容か許可されているアクションによってマウス ポインタを変更できます。
false(既定値)に設定した場合、ListView.ListItems 配列に追加した順序で、ListItem が表示されます。
true に設定した場合、ListItem はアルファベット順に並べられます。既定では、最初の列のテキストを使用して昇順に並べられます。
.Sort を true に設定した場合、このプロパティはソートの方向をコントロールします。
次のプロパティでは、ImageList ActiveX コントロールを割り当てて、ListView コントロールがアイコンとして使用する画像を指定することができます。
.View プロパティがそれぞれ #lvwIcon に設定されている場合にのみ、アイコンが表示されます。 #lvwSmallIcon
このプロパティを使用すると、アイコンをListView コントロールに割り当てることができます。アイコンとして使用する画像を含んだ IVBDataObject は「ImageList ActiveX コントロール」によって提供されます。
このプロパティを使用すると、小さなアイコンを ListView コントロールに割り当てることができます。アイコンとして使用する画像を含んだ IVBDataObject は、ImageList ActiveX コントロール コントロールによって提供されます。
このプロパティを使用すると、ListView コントロールの列ヘッダにアイコンに割り当てることができます。アイコンとして使用する画像を含んだ IVBDataObject は、ImageList ActiveX コントロール コントロールによって提供されます。
これは、Windows メッセージを ActiveX コントロールに送信する場合に必要となる ActiveX ハンドルです。詳細については、「Windows メッセージの送信」を参照してください。
ユーザが列ヘッダをクリックしたときに呼び出されます。ColumnHeader 引数には、クリックされた ColumnHeader が含まれます。ColumnHeader には、インデックスや位置合わせコントロールなどの固有のプロパティがあります。詳細は、「ColumnHeader のプロパティとメソッド」を参照してください。
ユーザが ListItem をクリックしたときに呼び出されます。この項目引数には、クリックされた行の、0 を基数としたインデックスが含まれます。
ユーザがキーを押したときに呼び出されます。KeyCode 引数には押されたキーの整数コードが含まれ、Shift 引数には[Shift]、[Ctrl]、および[Alt]キーが押されているかどうかを示すビットから成る整数値が含まれます。ビット 1 が[Shift]キー、ビット 2 が[Ctrl]キー、ビット 3 が[Alt]キーを表します。
3 - [Ctrl] + [Shift]キーが同時に押されました。
6 - [Ctrl] + [Alt]キーが同時に押されました。
7 - [Ctrl]、[Alt]、[Shift]キーが同時に押されました。
ユーザがキーを放したときに呼び出されます。KeyCode 引数には放したキーの整数コードが含まれ、Shift 引数には[Shift]、[Ctrl]、および[Alt]キーが押されているかどうかを示すビットから成る整数値が含まれます。上記を参照してください。
ユーザがキーを押したときに呼び出されます。KeyAscii 引数には、押されたキーの ASCII 整数コードが含まれます。たとえば、[スペース](Space)を押すと 32 が、[Shift]+[A]を押すと 65 が返されます。
on <control_name> MouseDown Button:integer Shift:integer x:OLE_XPOS_PIXELS y:OLE_YPOS_PIXELS do ( ... )
ユーザがマウスで ListItem をクリックしたときに呼び出されます。
Button 引数には、マウスのボタンに対応するビットから成る整数値が含まれます。ビット 1 は左マウス ボタンを、ビット 2 は右マウス ボタンを、ビット 3 は中央のマウス ボタンまたはホイールを表します。
on <control_name> MouseMove Button:integer Shift:integer x:OLE_XPOS_PIXELS y:OLE_YPOS_PIXELS do ( ... )
ユーザがマウスを ListView コントロール内に移動したときに呼び出されます。
Button 引数には、マウスのボタンに対応するビットから成る整数値が含まれます。ビット 1 は左マウス ボタンを、ビット 2 は右マウス ボタンを、ビット 3 は中央のマウス ボタンまたはホイールを表します。
on <control_name> MouseUp Button:integer Shift:integer x:OLE_XPOS_PIXELS y:OLE_YPOS_PIXELS do ( ... )
ユーザが ListView コントロール上でマウスを放したときに呼び出されます。
Button 引数には、マウスのボタンに対応するビットから成る整数値が含まれます。ビット 1 は左マウス ボタンを、ビット 2 は右マウス ボタンを、ビット 3 は中央のマウス ボタンまたはホイールを表します。
Shift 引数には、先に説明したとおり、[Shift]、[Ctrl]、および[Alt]キーの状態が含まれます。
x および y 引数には、ListView ピクセル座標(Twips ではありません)におけるクリックの位置が含まれます。ここで、0,0 は ListView コントロールの左上隅になります。
ユーザが ListView コントロール内でクリックしたときに呼び出されます。このイベントは特定の ListItem を返すわけではありませんが、すべての ListItem の選択状態や他のプロパティを問い合わせる場合に使用できます。これは、ユーザが ListView をクリックしたという一般的な通知であり、イベントによって行われる実際のアクションは、スクリプト開発者が指定できます。
ユーザが ListView コントロール内でダブルクリックしたときに呼び出されます。
ユーザが ListItem のチェックボックスの状態が変更したときに呼び出されます(プロパティ .checkboxes = true であり、利用できる場合)。
Item 引数には、チェックボックスが変更された ListItem が含まれます。続いて、この項目の .checked プロパティにアクセスすると、新しい状態にアクセスできます。また、他のすべての ListItem プロパティにもアクセスできます。
ユーザが ListView コントロールからドラッグを始めたときに呼び出されます。
ListItem は、 .ListItems.Add() メソッドを使用して作成できます。また、上記のように 1 を基数としたインデックスで指定したアクセスを使用してアクセスできます。すべての ListItem には、次のプロパティとメソッドがあります。
twip での ListItem の高さを返します。MAXScript では設定できません。
ListItem のアイコンを取得/設定します。アイコンは、1 を基数としたインデックスを付けて .icons 配列に収められており、この配列は「ImageList ActiveX コントロール」によって管理されます。
ListItem のインデックスを返します。MAXScript では設定できません。
ListItem のキーを返します。MAXScript では設定できません。
ListItem の選択状態を取得/設定します。true の場合、項目は選択され、false の場合、選択されません。ListItem を同時に複数選択できるか、それとも 1 つしか選択できないかは、ListView の .MultiSelect プロパティの状態によって決まります。1 つの ListItem の .selected プロパティを true に設定し、.MultiSelect を false に設定した場合、選択された他のすべての ListItem が自動的に選択解除されます。
ListItem の SmallIcon を取得/設定します。
twip での上部座標を返します。
twip での左座標を返します。
twip での ListItem の幅を返します。
ListItem のサブ項目の配列へのアクセスを提供します。サブ項目は、最初の列に続く列になります。サブ - 項目
サブ項目には、 .ListSubItems へのインデックスで指定したアクセスを使用してアクセスできます。
ListItem のチェック状態を取得/設定します。この後で説明する on ItemCheck do イベント ハンドラも参照してください。
ListItem のツールチップ テキストを取得/設定します。
ListItem の太字テキスト プロパティを取得/設定します。true に設定した場合、テキストは太字で表示されます。
ListSubItem は、 .ListItems.Add() メソッドを使用して作成できます。また、上記のように 1 を基数としたインデックスで指定したアクセスを使用してアクセスできます。すべての ListItem には、次のプロパティがあります。
すべての ColumnHeader には、次のプロパティがあります。
ColumnHeader によって表示されるテキストを取得/設定します
twip での列ヘッダの左マージンを取得します。
twip での列の幅を取得/設定します。
列ヘッダのアイコンを取得/設定します。アイコンは、1 を基数としたインデックスを付けて .icons 配列に収められており、この配列は ImageList ActiveX コントロールによって管理されます。アイコンが割り当てられていない場合、このプロパティは 0 を返します。
列ヘッダの位置を取得/設定します。この位置により列の順序が決まります。既定では、.Position は .Index プロパティと同じになるように設定されています。列の順序を効果的に変更し、適切な位置に列を配置するには、.Position を別の値に設定します。