SelectionTree コントロール

このコントロールを使用すると、ユーザーは、Feature テーブルに記載されている機能の選択状態を変更できます。 コントロールは、ユーザーが [参照] ダイアログで設定できる文字列値プロパティに関連付けられます。 コントロールをプロパティに関連付けるには、Control テーブルの Property 列にプロパティの名前を入力します。

SelectionTree コントロールは、Windows XP 以前のオペレーティング システムでは、次のコントロール イベントを自動的に発行します。 SelectionTree コントロールは、選択された項目が 1 つのノードから別のノードに変更されたときに、これらのイベントを発行します。 選択ツリーにノードがない場合、コントロールは、これらのイベントを発行し、イベントをサブスクライブするコントロールの内容を消去します。 これらの ControlEvent が ControlEvent テーブルに記載されている必要はありません。

コントロール イベント 説明
SelectionAction 強調表示された項目を説明する文字列を UIText テーブルから発行します。
SelectionBrowse 強調表示された項目のパスを変更するために使用される [参照] ダイアログ ボックスを生成します。
SelectionDescription 強調表示された項目を説明する文字列を Feature テーブルから発行します。
SelectionNoItems 使われていない項目の説明テキストを削除するか、ボタンを無効にします。
SelectionPath 強調表示された項目のパスを発行します。
SelectionPathOn 現在選択されている機能に関連付けられている選択パスがあるかどうかを発行します。
SelectionSize 強調表示された項目のサイズを発行します。

 

Windows Server 2003 システム以降、SelectionTree コントロールは、上記のテーブルのすべてのイベントを発行し、さらに DoAction ControlEvent または SetProperty ControlEvent を発行します。 DoAction ControlEvent または SetProperty ControlEvent を発行するには、ControlEvent テーブルにレコードを追加する必要があります。

コントロール イベント 説明
DoAction カスタム アクションを実行するようにインストーラーに通知します。
SetProperty プロパティを新しい値に設定します。

 

Windows インストーラー バージョン 3.0 以降、SelectionTree コントロールは、ControlEvent テーブルに記載されているカスタム アクションを実行するイベントを発行します。 SelectionTree コントロールは、コントロールで機能の選択が変更されるたびに、または現在の機能に対して別の選択状態が選択されるたびに、このイベントを発行します。 カスタム アクションは、イベントが発行されるたびに実行されます。 SelectionTree コントロールは、次のプロパティの値を設定して、カスタム アクションに情報を送信します。 SelectionTree コントロールが閉じられると、これらのすべてのプロパティはすべてクリアされます。

Windows インストーラー 2.0: サポートされていません。 SelectionTree コントロールは、イベントを発行せず、次のプロパティを設定しません。

プロパティ 説明
MsiSelectionTreeSelectedFeature Feature テーブルの Feature フィールドにある選択された機能の名前。
MsiSelectionTreeSelectedAction 選択された機能のインストール アクション状態。 値は、INSTALLSTATE_ABSENT、INSTALLSTATE_LOCAL、INSTALLSTATE_SOURCE、または INSTALLSTATE_ADVERTISED です。
MsiSelectonTreeChildrenCount 直接子ノードの数。
MsiSelectionTreeInstallingChildrenCount INSTALLSTATE_LOCAL、INSTALLSTATE_SOURCE、または INSTALLSTATE_ADVERTISED である直接子ノードの数。
MsiSelectionTreeSelectedCost 選択された機能を 512 バイト単位でインストールするコスト。
MsiSelectionTreeChildrenCost すべての子機能を 512 バイト単位でインストールするコスト。
MsiSelectionTreeSelectedPath 選択された機能がインストールされているパス。 機能が INSTALLSTATE_LOCAL としてインストールされている場合にのみ定義されます。

 

Note

Control テーブルの Text フィールドの内容は、SelectionTree コントロールによって表示されません。 代わりに、このフィールドは、コントロールによって表示されるテキストのスタイルを指定し、画面レビュー ユーティリティによって使用されるコントロールの説明を含みます。 テキスト文字列のフォントとフォント スタイルを設定するには、表示される文字の文字列の先頭に {\style} または {&style} を付けます。 ここで、style は、TextStyle テーブルの TextStyle 列に記載されている識別子です。 これらのどちらも存在しないが、DefaultUIFont プロパティが有効なテキスト スタイルとして定義されている場合は、そのフォントが使用されます。 この後の情報は、コントロールの説明として画面レビュー ユーティリティによって読み取られます。 「アクセシビリティ」を参照してください。

 

コントロールの属性

このコントロールでは次の属性を使用できます。 イベントを使用して属性の値を変更するには、EventMapping テーブルの ControlEvent にコントロールをサブスクライブし、Attribute 列に属性の識別子を記載します。 Event 列に ControlEvent の識別子を入力します。

属性識別子 16 進数ビット 説明
IndirectPropertyName コントロールに関連付けられている間接プロパティの名前。 Indirect 属性ビットが設定されている場合、コントロールは、この名前を持つプロパティの値を表示または変更します。 Indirect 属性ビットが設定されている場合、この名前は、Control テーブルの Property 列に記載されているプロパティの値でもあります。
Position ダイアログ ボックス内のコントロールの位置。 Control テーブルの Width、Height、X、Y の各列に、コントロールの幅、高さ、左隅の座標を入力します。 長さと距離にはインストーラー単位を使用します。
PropertyName このコントロールに関連付けられているプロパティの名前。 Indirect 属性ビットが設定されていない場合、コントロールは、この名前を持つプロパティの値を表示または変更します。 この属性は、Control テーブルの Property 列で指定されます。
PropertyValue このコントロールによって表示または変更されるプロパティの現在の値。 Indirect 属性ビットが設定されていない場合、これは PropertyName の値です。 Indirect 属性ビットが設定されている場合、これは IndirectPropertyName の値です。 属性が変更された場合、コントロールは新しい値を反映します。
テキスト Control テーブルの Text 列に入力されたテキストに従って、スクリーン リーダーにテキストを表示します。 「アクセシビリティ」を参照してください。
[表示] 0x00000000 0x00000001
表示されないコントロール。 表示されるコントロール。
コントロールの作成時にコントロールを表示可能にするか非表示にするかを設定するには、Control テーブルの Attributes 列のビット ワードにこのビットを含めます。
ControlCondition テーブルを使って、コントロールの非表示または表示を設定することもできます。
有効 0x00000000 0x00000002
無効状態のコントロール。 有効状態のコントロール。
作成時にコントロールを有効にするには、Control の Attributes 列のビット ワードにこのビットを含めます。
ControlCondition テーブルを使用して、コントロールを有効または無効にすることもできます。
Sunken 0x00000000 0x00000004
既定の表示スタイルを表示します。 浮き彫りの 3D の外観を使用してコントロールを表示します。
Control テーブルの Attributes 列のビット ワードにこれらのビットを含めます。
間接 0x00000000 0x00000008
コントロールは、Control テーブルの Property 列内にあるプロパティの値を表示または変更します。 コントロールは、Control テーブルの Property 列に記載されている識別子を持つプロパティの値を表示または変更します。
このコントロールに関連付けられているプロパティが間接的に参照されるかどうかを決定します。
RTLRO 0x00000000 0x00000020
コントロール内のテキストは、左から右への読み取り順序で表示されます。 コントロール内のテキストは、右から左への読み取り順序で表示されます。
RightAligned 0x00000000 0x00000040
コントロール内のテキストは、左揃えになります。 コントロール内のテキストは、右揃えになります。
LeftScroll 0x00000000 0x00000080
スクロール バーは、コントロールの右側に配置されます。 スクロール バーは、コントロールの左側に配置されます。
BiDi 0x000000E0 RTLRORightAlignedLeftScroll の各属性の組み合わせに対してこの値を設定します。

 

解説

このコントロールは、CreateWindowEx 関数を使用して、WC_TREEVIEW クラスから作成できます。 WS_BORDERTVS_HASLINESTVS_HASBUTTONSTVS_LINESATROOTTVS_DISABLEDRAGDROPTVS_SHOWSELALWAYSWS_CHILDWS_TABSTOPWS_GROUP の各スタイルがあります。

選択ツリーは、CostInitialize アクションCostFinalize アクションが呼び出された場合にのみ設定されます。

UIText テーブルの次の文字列は、このコントロールに関連しています。

期間 説明
AbsentPath
不在状態の項目に対して表示されるパス。

 

次の 6 つの文字列を使用して、選択された子の数と、強調表示された項目に関連付けられているサイズを表示します。

  • SelChildCostPos
  • SelChildCostNeg
  • SelParentCostPosPos
  • SelParentCostPosNeg
  • SelParentCostNegPos
  • SelParentCostNegNeg

次の文字列を使用して、ポップアップ メニューの項目に対して使用可能な選択オプションを表示します。

  • MenuAbsent
  • MenuLocal
  • MenuCD
  • MenuNetwork
  • MenuAllLocal
  • MenuAllCD
  • MenuAllNetwork

次の文字列を使用して、SelectionDescription ControlEvent での現在の選択内容を説明します。

  • SelAbsentAbsent
  • SelAbsentLocal
  • SelAbsentCD
  • SelAbsentNetwork
  • SelLocalAbsent
  • SelLocalLocal
  • SelLocalCD
  • SelLocalNetwork
  • SelCDAbsent
  • SelNetworkAbsent
  • SelCDLocal
  • SelNetworkLocal
  • SelCDCD
  • SelNetworkNetwork

次の 4 つのローカライズされた文字列は、ファイルのサイズの書式設定に使用されます。

  • バイト
  • KB
  • MB
  • GB