Сложно ли напичкать ListView 32-битными картинками? - VB

Узнай цену своей работы

Формулировка задачи:

Сразу скажу, что с аналогичной задачей для Treeview я справился и остался доволен.
Из этого екзампла:
http://btmtz.mvps.org/treeview/
VBDirectoryTV: Make the TreeView into a DirListBox
http://btmtz.mvps.org/treeview/vbdirectorytv.zip
Как то я его уже использовал не думая. Но тогда не осознал.
Вчера сидел плевался, но сегодня осознал и сделал, т.е.
1)Заменил GetSystemImagelist(SHGFI_SMALLICON) на пользовательский
2)На базе ф-ции

нарисовал свою
убрав всю муть про рекурсивное сканирование folders'
Т.е. получив возможность добавлять Nodes с картинками заданного содержания как мне надо через API
3)сильно упростил сабклассинг (он там явно навернутый, для общего случая много лишнего)
оставив лишь суть:

В итоге получилось красиво и просто:

Вопрос собственно в чем...

Насколько тяжело добавить всю эту 32-битность в ListView?


Всякие там итемсы, сабитемсы(про header-ы не спрашиваю, там просто). Потому как с тривью провозился целый день, не считая попыток кот. делал раньше(хоть за бесполезную пока возню с прозрачным тулбаром отыгрался...).
В принципе на том же сайте кажется пример с ListView тоже есть. Автор только почему-то наивно полагает что ListView и Treeview используются исключительно для отображения файловой системы, посему сильно накручивает коды.

Решение задачи: «Сложно ли напичкать ListView 32-битными картинками?»

textual
Листинг программы
<font color="blue">Dim</font> lngIcon <font color="blue">As</font> <font color="blue">Long</font>
lngIcon = LoadImage(App.hInstance, MAKEINTRESOURCE(<font color="darkblue"><b>1111</b></font>), IMAGE_ICON, <font color="darkblue"><b>16</b></font>, <font color="darkblue"><b>16</b></font>, LR_DEFAULTCOLOR)  <font color="00AA00">'App.hInstance</font>
  m_hIml = ImageList_Create(<font color="darkblue"><b>16</b></font>, <font color="darkblue"><b>16</b></font>, ILC_MASK <font color="blue">Or</font> ILC_COLOR32, <font color="darkblue"><b>3</b></font>, <font color="darkblue"><b>0</b></font>)
  ImageList_ReplaceIcon m_hIml, -<font color="darkblue"><b>1</b></font>, lngIcon
  ImageList_ReplaceIcon m_hIml, -<font color="darkblue"><b>1</b></font>, lngIcon
  ImageList_ReplaceIcon m_hIml, -<font color="darkblue"><b>1</b></font>, lngIcon
...
<font color="blue">Public</font> <font color="blue">Function</font> MAKEINTRESOURCE(<font color="blue">ByVal</font> lID <font color="blue">As</font> <font color="blue">Long</font>) <font color="blue">As</font> <font color="blue">String</font>
    MAKEINTRESOURCE = <font color="teal">"#"</font> & CStr(MAKELONG(lID, <font color="darkblue"><b>0</b></font>))
<font color="blue">End</font> <font color="blue">Function</font>

<font color="blue">Public</font> <font color="blue">Function</font> LOWORD(<font color="blue">ByVal</font> dwValue <font color="blue">As</font> <font color="blue">Long</font>) <font color="blue">As</font> <font color="blue">Long</font>
    <font color="blue">Call</font> CopyMemory(LOWORD, dwValue, <font color="darkblue"><b>2</b></font>)
<font color="blue">End</font> <font color="blue">Function</font>

<font color="blue">Public</font> <font color="blue">Function</font> MAKELONG(<font color="blue">ByVal</font> wLow <font color="blue">As</font> <font color="blue">Long</font>, <font color="blue">ByVal</font> wHi <font color="blue">As</font> <font color="blue">Long</font>) <font color="blue">As</font> <font color="blue">Long</font>
    <font color="blue">If</font> (wHi <font color="blue">And</font> &H8000&) <font color="blue">Then</font>
        MAKELONG = (((wHi <font color="blue">And</font> &H7FFF&) * <font color="darkblue"><b>65536</b></font>) <font color="blue">Or</font> (wLow <font color="blue">And</font> &HFFFF&)) <font color="blue">Or</font> &H80000000
    <font color="blue">Else</font>
        MAKELONG = LOWORD(wLow) <font color="blue">Or</font> (&H10000 * LOWORD(wHi))
    <font color="blue">End</font> <font color="blue">If</font>
<font color="blue">End</font> <font color="blue">Function</font>

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4.714 из 5