una tamaño sola otras modificar las fila como columna centimetros celdas celda cambiar automaticamente ancho alto ajustar agrandar mfc resize clistctrl

mfc - sola - como ajustar el tamaño de las celdas en excel



Cambio automático de ancho de columna en un CListCtrl (3)

¿Tienes la opción "No Scroll" activada? De forma predeterminada (opción "Sin desplazamiento" desactivada), si un elemento es demasiado largo, aparecerá una barra de desplazamiento.

¿Cómo puedo hacer que CListCtrl el ancho de sus columnas automáticamente? Por lo general, cuando un elemento en la lista es demasiado largo, el fondo desaparece de la vista y el usuario tiene que cambiar manualmente el ancho de la columna correspondiente. ¿Hay alguna forma de hacer esto por código?


Cambiar el tamaño de las columnas automáticamente es fácil:

for(int i = 0;i < pListCtrl->GetHeaderCtrl()->GetItemCount();++i) pListCtrl->SetColumnWidth(i,LVSCW_AUTOSIZE_USEHEADER);

Esto optimizará las columnas.


Supongo que te refieres a un control de lista en el modo de informe. Lamentablemente, no hay forma de cambiar automáticamente el tamaño de las columnas. Lo que puede hacer (lo que hago en algunos lugares) es calcular el ancho de las columnas a medida que ingresa los elementos, luego manejar WM_SIZE y cambiar el tamaño de las columnas. Sin embargo, esto provoca cambios que el usuario ha perdido, por lo que es posible que necesite un algoritmo mejor, como el seguimiento si el usuario realizó algún cambio, si es que no lo hizo. No es muy agradable desde una perspectiva de UX, solo lo uso en una cantidad selecta de circunstancias donde el comportamiento tiene sentido en el contexto del resto de la UI.