Сложно ли напичкать 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) на пользовательский
нарисовал свою
Т.е. получив возможность добавлять Nodes с картинками заданного содержания как мне надо через API
3)сильно упростил сабклассинг (он там явно навернутый, для общего случая много лишнего)
оставив лишь суть:
В итоге получилось красиво и просто:
Вопрос собственно в чем...
Всякие там итемсы, сабитемсы(про header-ы не спрашиваю, там просто). Потому как с тривью провозился целый день, не считая попыток кот. делал раньше(хоть за бесполезную пока возню с прозрачным тулбаром отыгрался...).
В принципе на том же сайте кажется пример с ListView тоже есть. Автор только почему-то наивно полагает что ListView и 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>
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д