Я создал очень простой вид, полученный от CListView
, и я хочу иметь возможность показывать изображения в каждом столбце моего CListView
.
Для этого я знаю, что мне нужно использовать LVS_EX_SUBITEMIMAGES
и использовать SetItem
, чтобы установить изображение в подэлемент, просто, но это не работает.
весь код здесь Почему изображения не отображаются в подтипах в mfc CListView/CListCtrl?
void MyListView::OnInitialUpdate()
{
CListView::OnInitialUpdate();
//create the list control
GetListCtrl().ModifyStyle(0,LVS_REPORT | LVS_ALIGNLEFT | WS_BORDER | WS_TABSTOP);
GetListCtrl().ModifyStyleEx(0,LVS_EX_SUBITEMIMAGES);
GetListCtrl().InsertColumn(0, _T("Column 1"), LVCFMT_LEFT,60);
GetListCtrl().InsertColumn(1, _T("Column 2"), LVCFMT_LEFT,60);
//load the images
CImageList *pImageList;
pImageList = new CImageList();
pImageList->Create(26,26, ILC_MASK | ILC_COLOR16,2, 2);
CBitmap bitmap;
bitmap.LoadBitmap( IDB_MAIN);
pImageList->Add(&bitmap, (COLORREF)0xFFFFFF);
bitmap.DeleteObject();
bitmap.LoadBitmap(IDB_MAIN1);
pImageList->Add(&bitmap, (COLORREF)0xFFFFFF);
bitmap.DeleteObject();
GetListCtrl().SetImageList(pImageList, LVSIL_SMALL);
GetListCtrl().SetImageList(pImageList, LVSIL_NORMAL);
GetListCtrl().SetImageList(pImageList, LVSIL_STATE);
GetListCtrl().SetImageList(pImageList, LVSIL_GROUPHEADER);
COLORREF col;
col = RGB(240,240,240);
GetListCtrl().SetBkColor(col);
GetListCtrl().SetTextBkColor(col);
GetListCtrl().SetRedraw(TRUE);
//fill the view with 10 sample items
for (int i=0;i<10;i++)
{
CString csItem;
csItem.Format(L"Item %d",i+1);
GetListCtrl().InsertItem(LVIF_TEXT|LVIF_IMAGE,i,csItem,0,0,0,0);
CString csItem2;
csItem2.Format(L"Item2 %d",i+1);
GetListCtrl().SetItem(i,1,LVIF_TEXT|LVIF_IMAGE,csItem2,1,0,0,0,0);
}
}
Это очень простой, но я не могу получить результат, я хочу, и только первый столбец имеет изображения
Я хотел, чтобы обе колонки были изображения, так результат должен быть таким:
Так что же мне здесь не хватает? Как правильно показать изображения во втором столбце?
любая помощь приветствуется, спасибо заранее!
@ ahmedsafan86: Это было более 20 лет назад с Windows 95. Даже тогда вы можете использовать comctl версию 4.70 и использовать этот стиль. Начиная с Windows 98 расширенный стиль доступен для разработчиков без специального рисунка – cha
@ ahmedsafan86, cha прав Я не уверен в точной версии, которая включала это, но это правда, что он не был доступен с самого начала CListCtrl – Robson
вы оба правы, я был неправ, я не разбирался в syle LVS_EX_SUBITEMIMAGES раньше, а также не хорошо читал вопрос и не видел его, спасибо. – ahmedsafan86