Pregunta

El ListView en Comtl32.dll v6.0 hace selección múltiple (cuando se utiliza la tecla Shift) como sigue (medios x seleccionados)

00xxxx
xxxxxx
xxxx00

Las versiones anteriores de ListView lo hacen de la siguiente manera:

00xx00
00xx00
00xx00

¿Hay alguna manera de hacer que haga la primera forma (la forma comctl32 v6.0)?

Gracias John

¿Fue útil?

Solución

La respuesta corta es no. Pero debido a que parece incompleta ...

El ListView no expone una API que le permite cambiar su comportamiento de selección, y como pone Hans oblicuamente en su comentario, la única manera de cambiar el comportamiento del control ListView encontrar en versiones de comctl32.dll antes de la versión 6.0 es una máquina del tiempo. Hay un montón de comportamiento único integrado en el control ListView respecto a los eventos de selección, por lo que incluso si se va a tratar y propietario dibujar el control para modificar el apariencia del comportamiento de la selección, usted pronto se enfrentará a tener que manejar un número casi ridícula de mensajes de ventana que potencialmente podrían causar un cambio de selección.

También vale la pena señalar que esta cuestión es un error en un nivel completamente diferente. Si el usuario de la aplicación se está ejecutando una versión de Windows que incluye una versión de comctl32.dll antes de la versión 6.0, Este es el comportamiento que esperan fuera del control ListView. Anulación y cambiar eso sería nada más que confundir a ellos, ya que no funcionaría de la misma manera que cualquier otro control de ListView encontrado en su ordenador. Por el contrario, si el usuario de la aplicación se está ejecutando una versión de Windows que incluye v6 comctl32.dll o temprano, el control ListView será ya llevar a cabo como se describe de forma predeterminada. (Y usted no debe ir con ganas de cambiarlo por exactamente la misma razón.)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top