公开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 消息的新字符串。