共用方式為


揭示組合框項目 Owner-Drawn

應用程式開發人員不需要實作 IAccessible,即可在擁有者繪製的下拉式方塊中公開具有樣式 CBS_HASSTRINGS 的專案,因為 Microsoft Active Accessibility 會公開具有此樣式的下拉式方塊中的專案。 具有 CBS_HASSTRINGS 樣式的擁有者繪製的下拉式方塊項目會顯示為文字。 不過,此樣式也會與不顯示文字的自繪製下拉式方塊搭配使用,以便下拉式方塊項目可由 Microsoft Active Accessibility 存取。

若要讓 Microsoft Active Accessibility 在不顯示文字的自繪製組合框中呈現項目:

  • 建立下拉式方塊時,請使用 CBS_HASSTRINGS 樣式。
  • 建立文字對應項目,以命名或描述組合方塊中的每個項目。
  • 將項目新增至自繪組件的下拉式方塊時,請使用CB_ADDSTRING訊息來新增您想要的Microsoft Active Accessibility暴露的文字。 不顯示此文字,因此它不應該是自定義繪製數據的一部分。 使用CB_SETITEMDATA訊息新增擁有者繪製的項目數據。

使用上述方法時,請注意下列事項:

  • 如果您使用 CBS_SORT 樣式,下拉式方塊會使用提供的字符串來排序,而不是 WM_COMPAREITEM 回呼函數。
  • 使用擁有者繪製風格 CBS_OWNERDRAWVARIABLE建立的可變下拉式方塊時,請使用全域變數或其他一些機制來追蹤 MEASUREITEMSTRUCTitemData 成員的有效時機。 全域變數是必要的,因為系統會在新增字串時傳送 WM_MEASUREITEM 訊息,但在附加項目數據之前,而且此時 itemData 成員無效。
  • 若要使用 CBS_HASSTRINGS 樣式變更下拉式方塊中專案的字串,請刪除具有 CB_DELETESTRING 訊息的專案,並使用 CB_ADDSTRING 訊息新增新字串。