列仅在报告视图中显示,并且它们可以为每个列表项显示多条信息。您可以使用LVM_INSERTCOLUMN消息将列添加到列表视图控件。列表视图控件中的每个项目除了其项目文本之外,还可以包含任何数量的称为子项目的字符串。将列添加到列表视图控件时,可以指定要在列中显示的子项。
除非列表视图控件具有LVS_NOCOLUMNHEADER窗口样式,否则每列都有一个显示列名称的标题。用户可以单击标题,并使用标题对列进行大小调整。
以下示例将几列添加到列表视图控件。列标题被定义为字符串资源,它们以IDS_FIRSTCOLUMN(在应用程序的头文件中定义)连续编号。列的数量在应用程序的头文件中定义为C_COLUMNS。
// InitListViewColumns - 将列添加到列表视图控件。
//如果成功返回TRUE,否则返回FALSE。
// hwndLV - 列表视图控件的句柄
BOOL WINAPI InitListViewColumns(HWND hwndLV)
{
extern char g_achTemp[256]; //临时缓冲区
LV_COLUMN lvc;
int iCol;
//初始化LV_COLUMN结构。
lvc.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
lvc.fmt = LVCFMT_LEFT;
lvc.cx = 100;
lvc.pszText = g_achTemp;
//添加列。
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;
}