リスト ボックス項目Owner-Drawn公開する
Microsoft Active Accessibility では、このスタイルを持つリスト ボックス内のアイテムが公開されるため、アプリケーション開発者は、スタイルがLBS_HASSTRINGS所有者が描画したリスト ボックス内のアイテムを公開するために IAccessible を実装する必要はありません。 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 メッセージを含む新しい文字列を追加します。