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.