値マップの注釈
値マップ注釈を使用すると、マッピング文字列を使用して、リスト ビューまたはツリー ビュー内のアイテムのイメージ インデックスがそのロールまたは状態にどのように対応するかを示すことができます。 たとえば、マッピング文字列は、リスト ビューのイメージ インデックス 0 が チェック ボックスのロールにマップされ、イメージ インデックス 1 がラジオ ボタンのロールにマップされることを示す場合があります。
値マップ注釈を使用して、スライダーの数値にマップする文字列を指定することもできます。
この手法を使用する状況
次の状況では、値マップ注釈の使用を検討してください。
所有者描画リスト ビューまたはツリー ビューにイメージの使用が組み込まれており、そのイメージに基づいてユーザー設定のアクセシビリティ対応の説明 (Description プロパティ) を指定する場合。 例を次の図に示します。
所有者描画リスト ビューまたはツリー ビュー コントロールに、イメージを使用してツリーまたはリスト アイテムを単純なコントロール (通常はチェックボックスやラジオ ボタン) のように動作させ、イメージをロールにマップする場合。 次のスクリーンショットに、例を示します。
次のスクリーン ショットのように、スライダーを使用して単純な整数以外の値として記述できる値を選択すると、画面の解像度設定は文字列で記述されます。
値マップ注釈を使用すると、マッピング文字列は、リストまたはツリーのイメージ インデックスがそのロールまたは状態にどのように対応するかを示します。 または、スライダーの数値が文字列にどのように対応するかを示すことができます。 たとえば、マッピング文字列は、リスト ビューのイメージ インデックス 0 が チェック ボックスのロールにマップされ、イメージ インデックス 1 がラジオ ボタンのロールにマップされることを示している場合があります。 IAccPropServices::SetHwndPropStr() を使用して、マッピング文字列をコントロールにアタッチします。
値マッピングをサポートするにはコントロール固有の知識が必要であるため、スライダー値マップ、リスト ビュー、ツリー ビューなど、値マップ注釈をサポートするコントロールとプロパティの数は限られています。
スライダー値マップ
PROPID_ACC_VALUEMAP には、内部スライダーの位置から人間が判読できる文字列へのマッピングが含まれています。 このプロパティは、Oleacc.dll スライダー プロキシでサポートされています。 値マップで現在のスライダー値が見つかった場合、対応する文字列は、既定のパーセンテージ文字列 ("50" など) ではなく値として公開されます。
リスト ビューとツリー ビュー
PROPID_ACC_ROLEMAP、 PROPID_ACC_STATEMAP、 PROPID_ACC_DESCRIPTONMAP では、状態イメージ インデックスからロールと状態の値へのマッピングが提供されます。 これらのマップを使用すると、これらのイメージ インデックスを適切なロール (通常 はROLE_SYSTEM_RADIOBUTTON または ROLE_SYSTEM_CHECKBUTTON) と追加の状態ビット (通常は STATE_SYSTEM_CHECKED) にマップできます。
値マップ注釈の詳細については、次のトピックを参照してください。
注釈マップの形式
次の表では、注釈マップに含まれるフィールドについて説明します。
フィールド | 説明 |
---|---|
'A' | 特定のコーディング スキームが使用されることを示します。 今後のエンコード スキームでは、追加のプレフィックスがサポートされる場合があります。 |
区切り文字 | 通常はコロン (:)は使用されますが、 NULL または空のスペースを除き、別の文字を使用できます。 この文字は残りのフィールドの区切り記号として使用されるため、マップ内の値の一部として使用できない場合があります。 |
0、1、または 2 | 使用されているキーを示す値。 ツリー ビューおよびリスト ビューのロールと状態マップの場合、このキーには 0 (イメージ インデックス)、1 (状態イメージ インデックス)、または 2 (オーバーレイ イメージ インデックス) を指定できます。 スライダーやその他のコントロールでキーを選択できない場合、この値は 0 である必要があります。 |
区切り文字 | : |
キーと値のペア | 各ペアは、キー文字列と区切り文字で構成されます。 キー文字列は数値であり、10 進数または 16 進数 (先頭に "0x" プレフィックス) の形式を指定できます。 |
値の文字列 | 値マップの場合、これは文字列です。 ロール マップと状態マップの場合、これは数値 (10 進数または 16 進数) です。 |
区切り文字 | : |
たとえば、マップは次のようになります。
A:0:0:Cold:1:Warm:3:Hot:
この値マップをスライダー コントロールに適用すると、スライダーが 1 の位置にあるときに"ウォーム" の値が表示されます。 この例では値 2 は含まれていないため、その位置の既定値が公開されます。 スライダーの場合、既定値はパーセント値 (33 など) になります。