Edit コントロール (Windows インストーラー)

Edit コントロールは、文字列または整数値プロパティに関連付けられている編集フィールドです。 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 の各属性の組み合わせに対してこの値を設定します。
MultiLine 0x00010000 垂直スクロール バーを備えた複数行の編集コントロールを作成します。 垂直スクロール バーを備えた複数行の編集コントロールを作成するには、Control の Attributes 列のビット ワードに 65536 を含めます。
パスワード 0x00200000 パスワードを入力するための編集コントロールを作成します。 Control テーブル の Attributes 列の値に 2097152 を追加して、コントロールに各文字を入力するときにそれらをアスタリスク (*) として表示する編集コントロールを作成します。 Password 属性を設定すると、Edit コントロールに関連付けられているプロパティがインストーラーによってログ ファイルに書き込まれなくなります。 詳細については、「機密情報がログ ファイルに書き込まれないようにする」を参照してください

解説

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

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

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

Edit コントロールに関連付けられているプロパティは、そのコントロールがフォーカスを失ったときにのみ設定されます。 したがって、プロパティが更新されるように、コントロールからタブ移動するか、別のコントロールを選択する必要があります。