Function ListViewGadget(ByVal gadget As Long, ByVal x As Long, ByVal y As Long, ByVal w As Long, ByVal h As Long, ByVal ExStyle As Long = 0, ByVal Style As Long = LVS_ICON Or LVS_REPORT,ByVal Style2 As Long = 0,ByVal SizeIcon As Long = 16, ByVal StyleIcon As Long = LVSIL_SMALL) As HWND
Создает гаджет ListView (список с изображениями). На Linux список работает только в режиме детального просмотра LVS_REPORT.
Установить цвет в гаджет можно функцией SetGadgetColor
Получить цвет из гаджета можно функцией GetGadgetColor
Установить шрифт в гаджет можно функцией SetGadgetFont . В Linux с подсистемой GTK2 шрифт меняется только для строк , изменение шрифта текста колонок не поддерживается.
Получить хендл списка изображений можно функцией GetHimageCombo_ (пример: list=GetHimageCombo_(gadget)) (только для windows)
gadget - идентификатор\номер (любое натуральное число больше нуля, может быть 1,2,3,4 и др.)
x,y,w,h - расположение и размеры
ExStyle - Расширенные стили:
Для Linux и Windows:
LVS_EX_GRIDLINES - Отображение сетки для пунктов и подпунктов. Этот стиль доступен только в сочетании со стилем LVS_REPORT.
LVS_EX_SUBITEMIMAGES - (на Linux всегда включен). Позволяет изображения, которые будут отображаться для подразделов. Этот стиль доступен только в сочетании с LVS_REPORT стилем.
LVS_EX_FULLROWSELECT - (на Linux всегда включен). Когда элемент выбран, элемент и все его подпункты выделены. Этот стиль доступен только в сочетании с стилем LVS_REPORT. При использовании данного стиля, в событиях можно получать индексы от основных (items) и дочерних пунктов (subitems). Без использования данного стиля в событих, нельзя получить индекс для основных пунктов (самого первого столбца) если щелкать мышью по его дочерним пунктам (subitems).
Только для Windows:
LVS_EX_AUTOAUTOARRANGE - Автоматическое Упорядочивание значков, (Подобно LVS_AUTOARRANGE).
LVS_EX_AUTOCHECKSELECT - Автоматический выбор флажков за один клик.
LVS_EX_AUTOSIZECOLUMNS - Автоматически размер столбцов ListView.
LVS_EX_BORDERSELECT - Изменение цвета границы, когда элемент выбран, вместо подсветки пункта.
LVS_EX_CHECKBOXES - Включение CheckBox в списке.
LVS_EX_COLUMNSNAPPOINTS - Привязка к минимальной ширины колонки, когда пользователь изменяет размер столбца.
LVS_EX_HEADERDRAGDROP - Позволяет перетаскивать столбцы, доступен только со стилем LVS_REPORT.
LVS_EX_HIDELABELS - Скрывает метки в значках и малых иконках.
LVS_EX_SNAPTOGRID - В пиктограммах, иконки автоматически привязываются к сетке.
Все стили можно найти ЗДЕСЬ
Style - стили гаджета:
Для Windows и Linux:
LVS_NOCOLUMNHEADER - Если указан стиль LVS_NOCOLUMNHEADER, в режиме детального просмотра не отображается заголовок столбцов, с помощью которого выполняется сортировка и изменение размера столбцов
LVS_SINGLESEL - Пользователь может выделить в списке только один элемент (по умолчанию можно выделить сразу несколько элементов)
Только для Windows:
LVS_REPORT - Список отображается в виде детального отчета, состоящего из нескольких столбцов
LVS_ICON - Список отображается в виде окна с пиктограммами стандартного размера
LVS_SMALLICON - Список отображается в виде окна с пиктограммами уменьшенного размера
LVS_LIST - Простой список с пиктограммами уменьшенного размера
LVS_ALIGNLEFT - Используется вместе с LVS_ICON и LVS_SMALLICON. Если указан этот стиль, пиктограммы будут выровнены по левой границе
LVS_ALIGNTOP - Используется вместе с LVS_ICON и LVS_SMALLICON. Если указан этот стиль, пиктограммы будут выровнены по верхней границе. Стиль LVS_ALIGNTOP используется по умолчанию
LVS_AUTOARRANGE - Используется вместе с LVS_ICON и LVS_SMALLICON для выполнения автоматического размещения пиктограмм внутри окна органа управления List View
LVS_NOSCROLL - Отключение возможности свертки содержимого окна органа управления List View
LVS_EDITLABELS - Этот стиль позволяет пользователю редактировать название элемента списка. Если указан стиль LVS_EDITLABELS, приложение должно обрабатывать извещение LVN_ENDLABELEDIT
LVS_NOLABELWRAP - Подпись под пиктограммами отображается в одной строке
LVS_NOSORTHEADER - Если указан этот стиль, с помощью заголовка окна невозможно выполнить сортировку столбцов в режиме детального просмотра
LVS_OWNERDRAWFIXED - Стиль позволяет родительскому окну выполнить рисование содержимого списка. Для этого родительское окно должно обрабатывать сообщение WM_DRAWITEM
LVS_SHAREIMAGELIST - Этот стиль предназначен для организации совместного использования списков изображений несколькими органами управления List View
LVS_SHOWSELALWAYS - Выбранные элементы списка отображаются с выделением даже в том случае, когда орган управления List View не активен
LVS_SORTASCENDING - Выполнение сортировки текстовых строк элементов в прямом порядке
LVS_SORTDESCENDING - То же, но в обратном порядке
Style2 - (только для Windows); дополнительный стиль (общий для всех окон, но мало что подойдет для гаджета):
WS_EX_ACCEPTFILES - Определяет, что окно, созданное с этим стилем принимает файлы при помощи информационной технологии "перетащи и вставь".
WS_EX_APPWINDOW - Активизирует окно верхнего уровня на панель задач, когда окно свернуто.
WS_EX_CLIENTEDGE - Определяет, что окно имеет рамку с углубленным краем.
WS_EX_CONTEXTHELP - Включает вопросительный знак в строку заголовка окна. Когда пользователь щелкает мышью по вопросительному знаку, курсор меняется на вопросительный знак с указателем. Если пользователь затем щелкает мышью по дочернему окну, потомок принимает сообщение WM_HELP. Дочернее окно должно передать сообщение родительской оконной процедуре, которая должна вызваться функцией WinHelp, использующей команду HELP_WM_HELP. Прикладная программа Справки показывает выскакивающее окно, которое обычно содержит справку для дочернего окна. WS_EX_CONTEXTHELP не может использоваться со стилями WS_MAXIMIZEBOX или WS_MINIMIZEBOX.
WS_EX_CONTROLPARENT - Позволяет пользователю передвигаться среди дочерних окон основного окна, используя клавишу табуляции (TAB).
WS_EX_DLGMODALFRAME - Создает окно, которое имеет двойную рамку; окно может быть создано (необязательно) со строкой заголовка, которую определяет стиль WS_CAPTION в параметре dwStyle.
WS_EX_LEFT - Окно имеет общеупотребительные свойства "выравнивания по левой границе". Это - по умолчанию.
WS_EX_LEFTSCROLLBAR - Если язык оболочки Еврейский, Арабский или другой язык, который придерживается иного порядка чтения, вертикальная линейка прокрутки (если появляется) - слева от рабочей области. Для других языков, этот стиль игнорируется и не обрабатывается как ошибка.
WS_EX_LTRREADING - Текст окна отображается, используя свойство порядка чтения Слева - Направо. Это - по умолчанию.
WS_EX_MDICHILD - Создает MDI дочернее окно.
WS_EX_NOPARENTNOTIFY - Определяет, что дочернее окно, созданное с этим стилем не посылает сообщение WM_PARENTNOTIFY родительскому окну, когда оно создается или разрушается.
WS_EX_OVERLAPPEDWINDOW - Объединяет стили WS_EX_CLIENTEDGE и WS_EX_WINDOWEDGE.
WS_EX_PALETTEWINDOW - Объединяет стили WS_EX_WINDOWEDGE, WS_EX_TOOLWINDOW и WS_EX_TOPMOST.
WS_EX_RIGHT - Окно имеет общеупотребительные свойства "выравнивание по правому краю". Оно зависит от класса окна. Этот стиль имеет эффект только тогда, если язык оболочек Еврейский, Арабский или другой язык, который поддерживает иной порядок выравнивания для чтения; иначе, стиль игнорируется и не обрабатывается как ошибка.
WS_EX_RIGHTSCROLLBAR - Вертикальная линейка прокрутки (если появляется) - справа от рабочей области. Это - по умолчанию.
WS_EX_RTLREADING - Если язык оболочки Еврейский, Арабский или другой язык, который придерживается иного порядка выравнивания для чтения, текст в окне отображается, используя свойства порядка чтения, Справа - Налево. Для других языков, стиль игнорируется и не обрабатывается как ошибка.
WS_EX_STATICEDGE - Создает окно с трехмерным стилем рамки, предполагается использовать для элементов, которые не принимают вводимую информацию от пользователя.
WS_EX_TOOLWINDOW - Создает окно инструментальных средств; то есть окно предполагается использовать как плавающую инструментальную панель. Окно инструментальных средств имеет строку заголовка, которая является короче, чем нормальная строка заголовка, а заголовок окна выводится, с использованием меньшего шрифта. Окно инструментальных средств не появляется в панели задач или в диалоговом окне, которое появляется, когда пользователь нажимает ALT+TAB.
WS_EX_TOPMOST - Определяет, что окно, созданное с этим стилем должно быть размещено выше всех, не самых верхних окон и должно стоять выше их, даже тогда, когда окно дезактивировано. Чтобы добавить или удалить этот стиль, используйте функцию SetWindowPos.
WS_EX_TRANSPARENT - Определяет, что окно, созданное с этим стилем должно быть прозрачным. То есть любые окна, которые появляются из-под окна, не затеняются им. Окно, созданное с этим стилем принимает WM_PAINT сообщения только после того, как все сестринские окна под ним модифицировались.
WS_EX_WINDOWEDGE - Определяет, что окно имеет рамку с выпуклым краем.
SizeIcon - (только для windows, в linux размер зависит от размера иконок\изображений) ; Размер иконок для списка.
StyleIcon - (только для windows, в linux размер зависит от размера иконок\изображений) ; Стиль иконок:
LVSIL_NORMAL Большие иконки
LVSIL_SMALL Маленькие иконки
LVSIL_STATE Список с изображениями для отображения состояний
Windows , Linux
#Include "window9.bi"
#Ifdef __FB_WIN32__
Var Style = LVS_EX_FULLROWSELECT Or LVS_EX_GRIDLINES Or LVS_EX_SUBITEMIMAGES
#Else
Var Style = 0
#EndIf
OpenWindow("Привет",10,10,350,360)
Var bmp1 = Load_image("1.png")
Var bmp2 = Load_image("2.png")
Var bmp3 = Load_image("3.png")
ListViewGadget(1,10,10,310,300,Style,,,32)
AddListViewColumn(1, "1 столбец",0,0,100)
AddListViewColumn(1, "2 столбец",1,1,100)
AddListViewColumn(1, "3 столбец",2,2,100)
For aa As Integer=0 To 15
AddListViewItem(1,"item №"+Str(aa),bmp1,aa,0)
AddListViewItem(1,"item №"+Str(aa+18),bmp2,aa,1)
AddListViewItem(1,"item №"+Str(aa+36),bmp3,aa,2)
Next
Do
Var event=WaitEvent()
If Event=EventClose Then End
Loop
#Include "window9.bi"
OpenWindow("",10,10,350,350)
ListViewGadget(1,10,10,310,300,0, LVS_ICON ,,32,LVSIL_NORMAL )
For aa As Integer=0 To 15
AddListViewItem(1,"item ?"+Str(aa),Extract_Icon(GetSystemDir & "\SetupAPI.dll",aa),aa,0)
Next
Do
Var event=WaitEvent()
If Event=EventClose Then End
Loop
Created with the Personal Edition of HelpNDoc: Produce Kindle eBooks easily