· Начало · Статистика · WASM.RU · Noir.Ru ·

 WASM Phorum (Оффлайн - 24.11.2003) —› WASM.WIN32 —› Добавление картинок к подитему в ListView в режиме

Посл.отвђт Сообщенiе


Дата: Авг 13, 2003 14:58:42

Возможно ли добавление картинок к подитему в ListView в режиме отчёта.
Загружаю картинки (bmp 16х16х16) из ресурса
      invoke LoadBitmap,[hwnd],IDB_FIN
	mov	 [hFin],eax
	invoke LoadBitmap,[hwnd],IDB_PASS
	mov	 [hPass],eax

Создаю ImageList и загружаю в него картинки:
        invoke ImageList_Create,16,16,ILC_COLOR16,2,10
	mov	[hImageList2],eax
	invoke ImageList_Add,[hImageList2],[hFin],0
	invoke ImageList_Add,[hImageList2],[hPass],0

Создаю ListView и добавляю к нему Image List:
        invoke CreateWindowEx, 0,ListViewClassName, NULL, \
                  LVS_REPORT+WS_CHILD+WS_VISIBLE+WS_BORDER+LVS_EDITLABELS+LVS_NOSORTHEAD ER+LVS_SHOWSELALWAYS+LVS_SINGLESEL,\
                                [xList],[yList],[wList],[hList],[hw], NULL,[hwnd], NULL
	mov	  [hwndList],eax
	mov	eax, LVS_EX_FULLROWSELECT + LVS_EX_GRIDLINES
	invoke     SendMessage,[hwndList],LVM_SETEXTENDEDLISTVIEWSTYLE, 0, eax
	invoke SendMessage,[hwndList],LVM_SETIMAGELIST,[hImageList],LVSIL_STATE

Далее при добавлении итемов и подитемов:
     mov    [lvi.imask],LVIF_TEXT+LVIF_PARAM+LVIF_IMAGE
     mov    eax,[i]
     mov    [lvi.iItem],eax
     mov    [lvi.iSubItem],0
     mov    [lvi.pszText],Buffer
     mov    [lvi.lParam],ebx
     mov    [lvi.iImage],0
     invoke    SendMessage,[hwndList],LVM_INSERTITEM,0,lvi
     mov    [lvi.imask],LVIF_TEXT
     mov    [lvi.iSubItem],1
     mov    eax,ebx
     add    eax,88
     mov    [lvi.pszText],eax
     invoke    SendMessage,[hwndList],LVM_SETITEM,0,lvi
     mov    eax,[ebx+496]; помещаем в еах  Kat.Num
     stdcall   IntToString,Buffer,eax
     mov    [lvi.iSubItem],2
     mov    [lvi.pszText],Buffer
     invoke    SendMessage,[hwndList],LVM_SETITEM,0,lvi
     mov    [lvi.imask],LVIF_TEXT+LVIF_IMAGE
     mov    [lvi.iSubItem],3
     mov    eax,ebx
     add    eax,162
     mov    [lvi.pszText],eax
     mov    [lvi.iImage],0
     invoke    SendMessage,[hwndList],LVM_SETITEM,0,lvi

Все итемы и подитемы отображаются нормально, но картинок нет. Переключений из режима отчёта в другие режимы не предусмотрено.


Дата: Авг 13, 2003 17:25:06

LVSIL_STATE -> LVSIL_SMALL.


Дата: Авг 13, 2003 17:38:59

Пробовал подставлять все 3 значения результат тот же, в смысле никакого.


Дата: Авг 13, 2003 19:45:31

А вот это пробовал?

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shell cc/platform/commctls/imagelist/macros/imagelist_loadbitmap.asp

Быстрее загрузить одним вызовом, чем несколькими, да еще потом и добавлять один за одним!


Дата: Авг 13, 2003 20:04:01

[ pas: Возможно ли добавление картинок к подитему в ListView в режиме отчёта. ]

Вроде, стандартный ListView такой функциональности не позволяет.


Дата: Авг 13, 2003 20:43:15

Four-F
Дело в том, что и в итем картинка не загружается
AsmGuru62
Ссылка не работает.


Дата: Авг 13, 2003 21:34:22

На сайте есть мой пакет cocomac, вроде, в разделе "Инструменты HI-TECH". Там есть пример \example\ListViewEditSubItems. Посмотри - может поможет ( каламбур ;-) ).


Дата: Авг 13, 2003 22:26:25 · Поправил: pas

Проблемма решена:
invoke SendMessage,[hwndList],LVM_SETIMAGELIST,LVSIL_SMALL,[hImageList2]

Картинки вставляются как в итемы так и в подитемы.


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.035