Здравствуйте, Kitaev Alexandr V., Вы писали:
[]
KAV>Так как получить HICON ресурса и запихнуть его в CImageList?
Так, навскидку:
HICON hIcon = LoadIcon(hInstance,MAKEINTRESOURCE(IDI_ICON1));
if(hIcon)
{
ImageList_AddIcon(hImageList,hIcon);
}
где hInstance — handle of application instance, hImageList — handle to the image list
F>F>HICON hIcon = LoadIcon(hInstance,MAKEINTRESOURCE(IDI_ICON1));
F> if(hIcon)
F> {
F> ImageList_AddIcon(hImageList,hIcon);
F> }
F>
F>где hInstance — handle of application instance, hImageList — handle to the image list
Понял! Но иконки и ЛистКонтроле не появляются! Делаю так:
SetImageList(&hImageList, LVSIL_SMALL);
...
LVITEM item = { 0 };
item.mask = LVIF_TEXT | LVIF_IMAGE;
item.iItem = 0;
item.pszText = "Item1";
item.iImage = 0;
hImageList.InsertItem(&item);
...
А иконок нет!
В чем я не прав?
KAV>Понял! Но иконки и ЛистКонтроле не появляются! Делаю так:
KAV>SetImageList(&hImageList, LVSIL_SMALL);
KAV>...
KAV> LVITEM item = { 0 };
KAV> item.mask = LVIF_TEXT | LVIF_IMAGE;
KAV> item.iItem = 0;
KAV> item.pszText = "Item1";
KAV> item.iImage = 0;
KAV> hImageList.InsertItem(&item);
KAV>...
KAV>А иконок нет!
KAV>В чем я не прав?
ужасно!!! ты во всем не прав
//create & fill image list
VERIFY(m_ImageState.Create(16, 16, ILC_COLOR16, 2, 2));
m_ctrlList.SetImageList(&m_ImageState, LVSIL_STATE);
m_ImageState.Add(AfxGetApp()->LoadIcon(IDI_PLUS));
m_ImageState.Add(AfxGetApp()->LoadIcon(IDI_MINUS));
m_ImageState.Add(AfxGetApp()->LoadIcon(IDI_APPLYED));
//вероятно, еще тебе нужно будет создать листконтрол со стилем LVS_SHAREIMAGELISTS
// insert the items and subitems into the list view.
for (iSubItem = 0; iSubItem < n; iSubItem++)
{
lvitem.mask = LVIF_TEXT;
lvitem.iItem = (iSubItem == 0) ? 0 : m_iActualItem;
lvitem.iSubItem = iSubItem;
// calculate the main and sub-item strings for the current item
lvitem.pszText = szText;
if (iSubItem == 0)
{
lvitem.iImage = IndexOfIconFromYourImageList();
if (lvitem.iImage!=-1) lvitem.mask|=LVIF_IMAGE;
m_iActualItem = m_ctrlList.InsertItem(&lvitem); // insert new item
}
else m_ctrlList.SetItem(&lvitem); // modify existing item (the sub-item text)
}
... << RSDN@Home 1.0 beta 6a >>
Здравствуйте, Kitaev Alexandr V., Вы писали:
KAV>Понял! Но иконки и ЛистКонтроле не появляются! Делаю так:
KAV>SetImageList(&hImageList, LVSIL_SMALL);
KAV>...
KAV> LVITEM item = { 0 };
KAV> item.mask = LVIF_TEXT | LVIF_IMAGE;
KAV> item.iItem = 0;
KAV> item.pszText = "Item1";
KAV> item.iImage = 0;
KAV> hImageList.InsertItem(&item);
может "лист контрол".InsertItem(&item)?
KAV>...
KAV>А иконок нет!
KAV>В чем я не прав?
Гм... А ты случайно не забыл создать сам ImageList?
(Особенно если пользуешь СImageList — популярная ошибка)
СImageList ImageList;
ImageList.Create(...);
или
HIMAGELIST hImageList = ImageList_Create(...)
?