mfc clistctrl

mfc - ¿Cómo editar columnas en el lugar con CListCtrl?



(2)

No intente con CListCtrl.

Use el control de cuadrícula MFC . Lo implementamos en una aplicación comercial con éxito. Ofrece edición in situ, casilla de verificación, giro, etc. para todas las celdas, así como encabezados de columna y fila, tamaño automático, expansión automática, colores, arrastrar y soltar.

Quiero tener CListCtrl.EditLabel () para cualquier columna de la lista. ¿Cómo puedo implementar tal característica?


Esto es posible, pero requiere un poco de relleno con clics del mouse y eventos de enfoque.

En pocas palabras, atrapa el mensaje del botón izquierdo del mouse y lo convierte en detalles de una celda (es decir, un índice de fila y columna).

Con estos detalles de celda no puede determinar el tamaño y la ubicación de la celda de vista de lista y también el valor de texto que contiene.

Ahora crea un control CEdit directamente sobre esta celda usando los detalles de tamaño y ubicación del paso anterior y dale el valor de texto de la celda.

El último paso es manejar los eventos de entrada de teclado y enfoque para el CEdit de modo que los detalles de texto del CEdit puedan volver a colocarse en la celda de la vista de lista.

Se necesita una buena cantidad de codificación, pero cuando se hace bien, funciona bien como alternativa al control de la cuadrícula.