как получить HICON ресурса...
От: Kitaev Alexandr V. Россия http://www.ipservice.ru
Дата: 14.03.03 10:57
Оценка:
Я новичок в этом вопросе, поэтому хотелось бы услышать знатоков
Есть ресурс :IDI_ICON1
Мне необходимо запихнуть его CListCtrl, я так понял что необходим CImageList.
Так как получить HICON ресурса и запихнуть его в CImageList?
Re: как получить HICON ресурса...
От: Flamer Кипр http://users.livejournal.com/_flamer_/
Дата: 14.03.03 11:05
Оценка:
Здравствуйте, 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
Re[2]: как получить HICON ресурса...
От: Kitaev Alexandr V. Россия http://www.ipservice.ru
Дата: 14.03.03 12:28
Оценка:
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);
...

А иконок нет!
В чем я не прав?
Re[3]: как получить HICON ресурса...
От: Valerio Россия linkedin.com/in/boronin
Дата: 14.03.03 17:11
Оценка:
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 >>
Valery A. Boronin, RSDN Team, linkedin.com\in\boronin
R&D Mgmt & Security. AppSec & SDL. Data Protection and Systems Programming. FDE, DLP, Incident Management. Windows Filesystems and Drivers.
Re[3]: как получить HICON ресурса...
От: Kirill_Luzanov  
Дата: 14.03.03 17:22
Оценка: 10 (2)
Здравствуйте, 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(...)
?
Think different
Re[4]: как получить HICON ресурса...
От: Kitaev Alexandr V. Россия http://www.ipservice.ru
Дата: 18.03.03 12:19
Оценка:
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.