Cómo agregar columnas de List-View
En este tema se muestra cómo agregar columnas a un control de vista de lista. Las columnas se usan para mostrar los elementos y subelementos cuando un control de vista de lista se encuentra en la vista de informe (detalles). El texto de las columnas seleccionadas también se puede mostrar en la vista de mosaico.
Lo que necesita saber
Tecnologías
Prerrequisitos
- C/C++
- Programación de la interfaz de usuario de Windows
Instrucciones
Para agregar una columna a un control de vista de lista, envíe el mensaje LVM_INSERTCOLUMN o use la macro ListView_InsertColumn . Para eliminar una columna, use el mensaje LVM_DELETECOLUMN .
El siguiente ejemplo de código de C++ llama a la macro ListView_InsertColumn para agregar columnas a un control de vista de lista. Los encabezados de columna se definen en el archivo de encabezado de la aplicación como recursos de cadena, que se numeran consecutivamente a partir de IDS_FIRSTCOLUMN. El número de columnas se define en el archivo de encabezado como C_COLUMNS.
// InitListViewColumns: Adds columns to a list-view control.
// hWndListView: Handle to the list-view control.
// Returns TRUE if successful, and FALSE otherwise.
BOOL InitListViewColumns(HWND hWndListView)
{
WCHAR szText[256]; // Temporary buffer.
LVCOLUMN lvc;
int iCol;
// Initialize the LVCOLUMN structure.
// The mask specifies that the format, width, text,
// and subitem members of the structure are valid.
lvc.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
// Add the columns.
for (iCol = 0; iCol < C_COLUMNS; iCol++)
{
lvc.iSubItem = iCol;
lvc.pszText = szText;
lvc.cx = 100; // Width of column in pixels.
if ( iCol < 2 )
lvc.fmt = LVCFMT_LEFT; // Left-aligned column.
else
lvc.fmt = LVCFMT_RIGHT; // Right-aligned column.
// Load the names of the column headings from the string resources.
LoadString(g_hInst,
IDS_FIRSTCOLUMN + iCol,
szText,
sizeof(szText)/sizeof(szText[0]));
// Insert the columns into the list view.
if (ListView_InsertColumn(hWndListView, iCol, &lvc) == -1)
return FALSE;
}
return TRUE;
}
Temas relacionados