Win32 - ListView中的图像列表

时间:2011-04-18 21:55:42

标签: image winapi listview resources

我正在尝试将图片添加到列表视图中。我保存了一个32x16的图像并尝试使用ImageList_Add()将其分割成2个图像(因为它应该能够从宽度推断出图像的数量)。项目正在添加但没有图像。当我点击时,似乎有些东西,但不是图像,也不是我期望的尺寸。

我使用以下代码:

LVCOLUMN lvc = {0};
lvc.mask     = LVCF_TEXT | LVCF_WIDTH;
lvc.pszText  = _T("Some column header");
lvc.cx       = 150;

HWND hwndListView = GetDlgItem( hwndDlg, IDC_LISTVIEW );
ListView_InsertColumn( hwndListView, 0, &lvc );

HIMAGELIST hImageList = ImageList_Create( 16, 16, ILC_COLOR, 2, 0 );
HBITMAP    hbmBlobs   = ( HBITMAP )LoadImage( ( HINSTANCE )lParam,
  MAKEINTRESOURCE( IDB_BLOBS ), IMAGE_BITMAP, 0, 0, 0 );

ImageList_Add( hImageList, hbmBlobs, NULL );
DeleteObject( hbmBlobs );
ListView_SetImageList( hwndListView, hImageList, LVSIL_SMALL );
ImageList_Destroy( hImageList );

LVITEM lvi = {0};
lvi.mask   = LVIF_IMAGE;
lvi.iImage = 0;
ListView_InsertItem( hwndListView, &lvi );

lvi.iImage = 1;
ListView_InsertItem( hwndListView, &lvi );

我上传了最基本的骨架代码来创建ListView以及我尝试显示图像。谢谢你的时间。

http://localhostr.com/file/adUSZvF/Skeleton.rar

1 个答案:

答案 0 :(得分:0)

您无法在图像列表上调用ImageList_Destroy!没有LVS_SHAREIMAGELISTS样式的列表视图会破坏您的图像列表...