次の方法で共有


MaskedEdit コントロール

MaskedEdit コントロールは、コントロールのテキスト フィールドにマスクを含む編集フィールド コントロールです。 コントロールを文字列値のプロパティに関連付けるには、Control テーブルの Property 列にプロパティ名を入力します。

MaskedEdit コントロールを使用すると、電話番号や製品 ID コードなどの情報をユーザーが入力するためのテンプレートを作成できます。 たとえば、PIDTemplate プロパティを次のような文字列に設定することで指定される MaskedEdit コントロールを使用して、ユーザーが PIDKEY プロパティを入力できます。

12345<### -%%%%%%%>@@@@@

この文字列によって、ユーザーが PIDKEY プロパティを入力するためのマスク テンプレートが定義されます。 文字列の表示セグメントは、角かっこ (<>) 文字のペアで囲まれます。

マスクの構文を次の表に示します。

文字 説明
< テンプレートの表示セグメントの左端。 この文字とその左側のすべての文字は、ユーザー インターフェイスでは非表示になります。 テンプレートには、この文字のインスタンスを 2 つ以上含めてはいけません。
> テンプレートの表示セグメントの右端。 この文字とその右側のすべての文字は、ユーザー インターフェイスでは非表示になります。 この文字は、検証の際にダッシュに置き換えられます。 < で始まる表示セグメントがある場合は、対応する > で終了する必要があります。
# この文字には数字 (数値) を指定できます。
% この文字には代替数字 (数値) を指定できます。これによって、カスタム アクションでフィールドを区別する方法をマスクで制御できるようになります。
@ この文字には任意の数字 (数値) を指定できます。この文字は、テンプレートの表示部分には表示されません。
& この文字には任意の文字を指定できます。
^ この文字には代替文字を指定できます。これによって、カスタム アクションでフィールドを区別する方法をマスクで制御できるようになります。
? この文字には代替文字を指定できます。これによって、カスタム アクションでフィールドを区別する方法をマスクで制御できるようになります。
` アクサン グラーブ記号 ` (ASCII 値 96) は代替文字を表すことができます。これによって、カスタム アクションでフィールドを区別する方法をマスクで制御できるようになります。
_ この文字はリテラル アンダースコア文字です。
= この文字はフィールド ターミネータです。 #、%、^、または ` の後に続く必要があります。 これにより、前の位置と同じ型の入力位置がもう 1 つ作成され、'-' 区切り記号でフィールドが終了します。

 

その他の文字はリテラル定数として扱われます。

編集できる文字の場合、コントロールによって、同じ種類の隣接した文字のブロックごとに 1 つのウィンドウを持つ個別の編集ウィンドウが作成されます。

コントロールの属性

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

属性 16 進数ビット 説明
IndirectPropertyName これは、コントロールに関連付けられている間接プロパティの名前です。 間接属性ビットが設定されている場合、コントロールは、この名前を持つプロパティの値を表示または変更します。 間接属性ビットが設定されている場合、この名前は、Control テーブルの Property 列に記載されているプロパティの値でもあります。
Position ダイアログ ボックス内のコントロールの位置。 Control テーブルの Width、Height、X、Y の各列に、コントロールの幅、高さ、左隅の座標を入力します。 長さと距離にはインストーラー単位を使用します。
PropertyName これは、このコントロールに関連付けられているプロパティの名前です。 間接属性ビットが設定されていない場合、コントロールは、この名前を持つプロパティの値を表示または変更します。 この属性は、Control テーブルの Property 列で指定されます。
PropertyValue このコントロールによって表示または変更されるプロパティの現在の値。 間接属性ビットが設定されていない場合、これは PropertyName の値です。 間接属性ビットが設定されている場合、これは IndirectPropertyName の値です。 属性が変更された場合、コントロールは新しい値を反映します。
テキスト テキスト文字列のフォントとフォント スタイルを設定するには、表示される文字の文字列の先頭に {\style} または {&style} を付けます。 ここで、style は、TextStyle テーブルの Style 列に記載されている識別子です。 これらのどちらも存在しないが、DefaultUIFont プロパティが有効なテキスト スタイルとして定義されている場合は、そのフォントが使用されます。 マスク テンプレートを指定する文字列は、このプレフィックスの後に続き、このトピックで前述した構文が使用されます。
[表示] 0x00000000 0x00000001
表示されないコントロール。 可視のコントロール。
コントロールの作成時にコントロールを表示可能にするか非表示にするかを設定するには、Control テーブルの Attributes 列のビット ワードにこのビットを含めます。
ControlCondition テーブルを使用して、コントロールの非表示または表示を設定することもできます。
有効 0x00000000 0x00000002
無効状態のコントロール。 有効状態のコントロール。
作成時にコントロールを有効にするには、Control テーブルの Attributes 列のビット ワードにこのビットを含めます。
ControlCondition テーブルを使用して、コントロールを有効または無効にすることもできます。
Sunken 0x00000000 0x00000004
既定の表示スタイルを表示します。 浮き彫りの 3-D の外観を使用してコントロールを表示します。
Control テーブルの Attributes 列のビット ワードにこれらのビットを含めます。
間接 0x00000000 0x00000008
コントロールは、Control テーブルの Property 列内にあるプロパティの値を表示または変更します。 コントロールは、Control テーブルの Property 列に記載されている識別子を持つプロパティの値を表示または変更します。
このコントロールに関連付けられているプロパティが間接的に参照されているかどうかを判断します。

 

解説

MaskedEdit コントロールでは、BUTTON クラスの親ウィンドウを 1 つ作成し、BS_OWNERDRAW スタイルと WS_EX_CONTROLPARENT スタイルを使用します。 このウィンドウに複数の子ウィンドウが作成されます。

  • 定数テキスト パーツの場合は、SS_LEFT スタイルと WS_CHILD スタイルを使用して STATIC ウィンドウが作成されます。
  • 編集可能なフィールドの場合は、WS_CHILDWS_BORDERWS_TABSTOP の各スタイルを使用して EDIT ウィンドウが作成されます。
  • 数値フィールドの場合、ウィンドウには ES_NUMBER スタイルも使用されます。

代替数字 % と代替英数字 ^、?、` のフィールドを使用すると、カスタム アクションでは、マスクによって制御できる方法でフィールドを区別できます。たとえば、大文字にする必要があるフィールドに ^ を使用できます。