Owner-Drawn リストボックス項目を表示する
アプリケーション開発者は、IAccessible実装して、スタイルが LBS_HASSTRINGS された所有者描画リスト ボックス内のアイテムを公開する必要はありません。これは、Microsoft Active Accessibility によって、このスタイルのリスト ボックス内のアイテムが公開されるためです。 LBS_HASSTRINGS スタイルの所有者描画リスト ボックス内の項目がテキストとして表示されます。 ただし、このスタイルは、Microsoft Active Accessibility によってリスト ボックス項目が公開されるように、テキストを表示しない所有者が描画したリスト ボックスでも使用されます。
Microsoft Active Accessibility が、テキストを表示しない所有者描画リスト ボックス内の項目を公開できるようにするには:
- リスト ボックスを作成するときは、LBS_HASSTRINGS スタイルを使用します。
- リスト ボックスの各項目に名前を付けたり説明したりするテキスト形式の対応するテキストを作成します。
- 所有者描画リスト ボックスに項目を追加する場合は、LB_ADDSTRING メッセージを使用して、Microsoft Active Accessibility で公開するテキストを追加します。 このテキストは表示されないため、所有者が描画したデータの一部ではありません。 LB_SETITEMDATA メッセージを使用して、所有者が描画した項目データを追加します。
上記の方法を使用する場合は、次の点に注意してください。
- LBS_SORT スタイルを使用する場合、リスト ボックスは、WM_COMPAREITEM コールバック プロシージャではなく、指定された文字列を使用して並べ替えられます。
- スタイル LBS_OWNERDRAWVARIABLEで作成された所有者描画変数リスト ボックスでは、グローバル変数またはその他のメカニズムを使用して、MEASUREITEMSTRUCT の itemData メンバー が有効かどうかを追跡します。 グローバル変数は、文字列が追加されるとすぐに、項目データがアタッチされる前にシステムが WM_MEASUREITEM メッセージを送信し、この時点で itemData メンバーが無効であるために必要です。
- LBS_HASSTRINGS スタイルのリスト ボックス内のアイテムの文字列を変更するには、LB_DELETESTRING メッセージを含むアイテムを削除し、LB_ADDSTRING メッセージを含む新しい文字列を追加します。