Compartir a través de


Exponer elementos de cuadro de lista de Owner-Drawn

Los desarrolladores de aplicaciones no necesitan implementar IAccessible para exponer los elementos en un cuadro de lista dibujado por el propietario que tenga el estilo LBS_HASSTRINGS porque Microsoft Active Accessibility expone los elementos en cuadros de lista con este estilo. Los elementos de un cuadro de lista dibujado por el propietario con el estilo LBS_HASSTRINGS se muestran como texto. Sin embargo, este estilo también se usa con cuadros de lista dibujados por el propietario que no muestran texto para que microsoft Active Accessibility exponga los elementos del cuadro de lista.

Para permitir que la accesibilidad activa de Microsoft exponga los elementos en un cuadro de lista dibujado por el propietario que no muestre texto:

  • Use el estilo LBS_HASSTRINGS al crear el cuadro de lista.
  • Cree un homólogo textual que designe o describa cada elemento del cuadro de lista.
  • Al agregar elementos al cuadro de lista dibujado por el propietario, use el mensaje LB_ADDSTRING para agregar el texto que desea que se exponga la accesibilidad activa de Microsoft. Este texto no se muestra, por lo que no forma parte de los datos dibujados por el propietario. Agregue los datos del elemento dibujado por el propietario mediante el mensaje LB_SETITEMDATA .

Al usar el método anterior, tenga en cuenta lo siguiente:

  • Si usa el estilo LBS_SORT , el cuadro de lista se ordena con las cadenas proporcionadas y no con el procedimiento de devolución de llamada WM_COMPAREITEM .
  • Con los cuadros de lista de variables dibujadas por el propietario creados con el estilo LBS_OWNERDRAWVARIABLE, use una variable global o algún otro mecanismo para realizar un seguimiento de cuándo es válido el miembro itemData del MEASUREITEMSTRUCT . La variable global es necesaria porque el sistema envía el mensaje de WM_MEASUREITEM tan pronto como se agrega la cadena, pero antes de adjuntar los datos del elemento y, en este momento, el miembro itemData no es válido.
  • Para cambiar la cadena de un elemento en un cuadro de lista con el estilo LBS_HASSTRINGS , elimine el elemento con el mensaje LB_DELETESTRING y agregue la nueva cadena con el mensaje LB_ADDSTRING.