ComboBox コントロール

ComboBox コントロールは、定義済みの値のドロップダウン リストと、ユーザーが値を入力できる編集フィールドを表示します。 このコントロールを文字列または整数のプロパティに関連付けるには、Control テーブルの Property 列にプロパティの名前を入力します。

コントロールの属性

このコントロールでは次の属性を使用できます。 イベントを使用して属性の値を変更するには、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 の値です。 属性が変更された場合、コントロールは新しい値を反映します。
テキスト テキスト文字列のフォントとフォント スタイルを設定するには、表示される文字の文字列の先頭に {\style} または {&style} を付けます。 ここで、style は、TextStyle テーブルの TextStyle 列に記載されている識別子です。 これらのどちらも存在しないが、DefaultUIFont プロパティが有効なテキスト スタイルとして定義されている場合は、そのフォントが使用されます。 ユーザーが入力できる文字数を指定するには、フォント指定の後に {n} を追加します。ここで、n は正の整数です。
[表示] 0x00000000 0x00000001
表示されないコントロール。 表示されるコントロール。
コントロールの作成時にコントロールを表示可能にするか非表示にするかを設定するには、Control テーブルの Attributes 列のビット ワードにこのビットを含めます。
ControlCondition テーブルを使って、コントロールの非表示または表示を設定することもできます。
有効 0x00000000 0x00000002
無効状態のコントロール。 有効状態のコントロール。
作成時にコントロールを有効にするには、Control の Attributes 列のビット ワードにこのビットを含めます。
ControlCondition テーブルを使用して、コントロールを有効または無効にすることもできます。
Sunken 0x00000000 0x00000004
既定の表示スタイルを表示します。 浮き彫りの 3-D の外観を使用してコントロールを表示します。
Control テーブルの Attributes 列のビット ワードにこれらのビットを含めます。
間接 0x00000000 0x00000008
コントロールは、Control テーブルの Property 列内にあるプロパティの値を表示または変更します。 コントロールは、Control テーブルの Property 列に記載されている識別子を持つプロパティの値を表示または変更します。
このコントロールに関連付けられているプロパティが間接的に参照されるかどうかを決定します。
整数 0x00000000 0x00000010
コントロールに関連付けられているプロパティは、文字列値です。 コントロールに関連付けられているプロパティは、整数値です。
コントロールの作成時にこの属性を設定するには、Control テーブルの Attributes 列のビット ワードにこのビットを含めます。
RTLRO 0x00000000 0x00000020
コントロール内のテキストは、左から右への読み取り順序で表示されます。 コントロール内のテキストは、右から左への読み取り順序で表示されます。
RightAligned 0x00000000 0x00000040
コントロール内のテキストは、左揃えになります。 コントロール内のテキストは、右揃えになります。
LeftScroll 0x00000000 0x00000080
スクロール バーは、コントロールの右側に配置されます。 スクロール バーは、コントロールの左側に配置されます。
BiDi 0x000000E0 RTLRORightAlignedLeftScroll の各属性の組み合わせに対してこの値を設定します。
Sorted 0x00010000 が未設定
項目はアルファベット順に表示されます。 項目は ListView テーブルで指定された順序で表示されます。
コントロールは ComboBox テーブルに対してクエリを実行します。Sorted スタイル ビットが設定されている場合、ComboBox は CBS_SORT スタイルを持ち、Ordering で指定された項目を表示します。 このスタイル ビットが設定されていない場合、項目はアルファベット順に表示されます。
ComboList 0x00020000 が未設定
編集フィールドを持つコンボ ボックス。 編集フィールドを持つコンボ ボックスは、静的テキスト フィールドに置き換えられます。
UsersLanguage 0x00000000 0x00100000
データベースのコード ページで作成されたフォント。 ユーザーの既定の UI のコード ページで作成されたフォント。

解説

このコントロールは、CreateWindowEx 関数を使って、COMBOBOX クラスから作成できます。 CBS_AUTOHSCROLLWS_TABSTOPWS_GROUPWS_CHILD スタイルを持っています。 また、ComboList ビットがオンの場合は、CBS_DROPDOWNLIST スタイルを持ち、それ以外の場合は、CBS_DROPDOWN スタイルを持ちます。

入力できるテキストの長さを制限するには、Control テーブルの Text フィールドの先頭に 0 から 2147483646 の数値を中かっこで囲んで入れます。 たとえば、テキスト フィールドが {80} で始まる場合、文字列の長さは 80 文字に制限されます。 このような制限がテーブルに指定されていない場合、または 0 を指定した場合、長さは可能な最大数 (2147483646 文字) に設定されます。 負の値または数値以外の値を指定すると、エラーが発生します。

スクリーン リーダーとの互換性を保つには、ComboBox コントロールを最初のアクティブ コントロールとして設定したダイアログ ボックスを作成するときに、編集フィールドに属するテキスト フィールドを Dialog テーブルの最初のアクティブなコントロールにする必要があります。 静的テキストにフォーカスを移すことはできないので、ダイアログ ボックスが作成されると、意図したとおりに最初に編集フィールドにフォーカスが設定されます。 こうすることで、スクリーン リーダーは正しい情報を示すことができます。