Adding Columns to a List View Control
Columns appear only in report view, and they enable multiple pieces of information to be displayed for each list item. You can add columns to a list view control by using the LVM_INSERTCOLUMN message. Each item in a list view control can have, in addition to its item text, any number of strings called subitems. When you add a column to a list view control, you specify which subitem to display in the column.
Unless a list view control has the LVS_NOCOLUMNHEADER window style, each column has a header showing the column name. The user can click the header and can size the columns using the header.
The following example adds several columns to a list view control. The column headings are defined as string resources, which are consecutively numbered starting with IDS_FIRSTCOLUMN (defined in the application's header file). The number of columns is defined in the application's header file as C_COLUMNS.
// InitListViewColumns - adds columns to a list view control.
// Returns TRUE if successful or FALSE otherwise.
// hwndLV - handle of the list view control
BOOL WINAPI InitListViewColumns(HWND hwndLV)
{
extern char g_achTemp[256]; // temporary buffer
LV_COLUMN lvc;
int iCol;
// Initialize the LV_COLUMN structure.
lvc.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
lvc.fmt = LVCFMT_LEFT;
lvc.cx = 100;
lvc.pszText = g_achTemp;
// Add the columns.
for (iCol = 0; iCol < C_COLUMNS; iCol++) {
lvc.iSubItem = iCol;
LoadString(g_hinst, IDS_FIRSTCOLUMN + iCol,
g_achTemp, sizeof(g_achTemp));
if (ListView_InsertColumn(hwndLV, iCol, &lvc) == -1)
return FALSE;
}
return TRUE;
}