値マップの注釈
値マップ注釈を使用すると、マッピング文字列を使用して、リスト ビューまたはツリー ビュー内の項目のイメージ インデックスが、そのロールまたは状態にどのように対応するかを示すことができます。 たとえば、マッピング文字列は、リスト ビューのイメージ インデックス 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 など) になります。