列表视图控件最多可以有三个与之相关的图像列表:一个用于图标视图中的项目图标,一个用于其他视图中的项目图标,另一个用于应用程序定义的项目状态。以下示例创建两个图像列表,为每个图像添加一个图标,并使用LVM_SETIMAGELIST消息将其分配给列表视图控件。
// InitListViewImageList - 为列表视图创建映像列表。
//如果成功返回TRUE,否则返回FALSE。
// hwndLV - 列表视图控件的句柄
BOOL WINAPI InitListViewImageLists(HWND hwndLV)
{
HICON hiconItem; //图标列表视图项
HIMAGELIST himlLarge; //图标视图图像列表
HIMAGELIST himlSmall; //其他视图的图像列表
//创建全尺寸和小图标图像列表。
himlLarge = ImageList_Create(GetSystemMetrics(SM_CXICON),
GetSystemMetrics(SM_CYICON), TRUE, 1, 1);
himlSmall = ImageList_Create(GetSystemMetrics(SM_CXSMICON),
GetSystemMetrics(SM_CYSMICON), TRUE, 1, 1);
//将图标添加到每个图像列表。
hiconItem = LoadIcon(g_hinst, MAKEINTRESOURCE(IDI_ITEM));
ImageList_AddIcon(himlLarge, hiconItem);
ImageList_AddIcon(himlSmall, hiconItem);
DeleteObject(hiconItem);
//将图像列表分配给列表视图控件。
ListView_SetImageList(hwndLV, himlLarge, LVSIL_NORMAL);
ListView_SetImageList(hwndLV, himlSmall, LVSIL_SMALL);
return TRUE;
}