Всех приветствую!
Есть задача разместить в ListIconGadget разные значки в разных колонках.
Рисую картинки, помещаю в список, в итоге в первой колонке отображаются, а в остальные не могу поместить значки.
Как я думаю, что-то со вставкой SUBITEM в ListIconGadget.
Гляньте код, а то я сам уже не догоняю в чем дело
За ранее спасибо!
Enumeration
#MainWindow
EndEnumeration
Enumeration
#MC_red
#MC_blue
#MC_green
EndEnumeration
;{ рисуем три иконки
; красный
color=$0000ff
CreateImage(#MC_red,16,16,32|#PB_Image_Transparent)
StartDrawing(ImageOutput(#MC_red))
Box(0,0,16,16,RGB(255,255,255))
LineXY(8,4,12,8,color)
LineXY(12,8,8,12,color)
LineXY(8,12,4,8,color)
LineXY(4,8,8,4,color)
FillArea(8,8,-1,color)
StopDrawing()
; синий
color=$ff0000
CreateImage(#MC_blue,16,16,32|#PB_Image_Transparent)
StartDrawing(ImageOutput(#MC_blue))
Box(0,0,16,16,RGB(255,255,255))
LineXY(8,4,12,8,color)
LineXY(12,8,8,12,color)
LineXY(8,12,4,8,color)
LineXY(4,8,8,4,color)
FillArea(8,8,-1,color)
StopDrawing()
; зеленый
color=$008000
CreateImage(#MC_green,16,16,32|#PB_Image_Transparent)
StartDrawing(ImageOutput(#MC_green))
Box(0,0,16,16,RGB(255,255,255))
LineXY(8,4,12,8,color)
LineXY(12,8,8,12,color)
LineXY(8,12,4,8,color)
LineXY(4,8,8,4,color)
FillArea(8,8,-1,color)
StopDrawing()
;}
Hwnd = ImageList_Create_(16,16,#ILC_COLOR32|#ILC_MASK, 0, 100)
; помещаем в список
ImageList_Add_(Hwnd, ImageID(#MC_red), 0) ; 0
ImageList_Add_(Hwnd, ImageID(#MC_blue), 0) ; 1
ImageList_Add_(Hwnd, ImageID(#MC_green), 0) ; 2
If OpenWindow(#MainWindow,0,0,405,300,"Окно",#PB_Window_ScreenCentered |#PB_Window_SystemMenu)
; собственно ListIconGadget
LIG=ListIconGadget(#PB_Any,20,20,365,260,"Колонка 1", 120 ,#PB_ListIcon_MultiSelect|#PB_ListIcon_FullRowSelect|#PB_ListIcon_AlwaysShowSelection)
AddGadgetColumn(LIG, 1, "Колонка 2",120)
AddGadgetColumn(LIG, 2, "Колонка 3",120)
SendMessage_(GadgetID(LIG), #LVM_SETIMAGELIST, #LVSIL_SMALL, Hwnd)
For i = 0 To 2
AddGadgetItem(LIG, -1, ""+Chr(10)+ "abc"+Chr(10)+"def")
; структура с параметрами
Var.lv_item
Var\mask = #LVIF_IMAGE | #LVIF_TEXT
Var\iItem = i ; номер строки
Var\iSubItem = 0 ; номер колонки
Var\pszText = @""; замена текста
Var\iImage = i ; номер картинки в списке
; первая колонка
SendMessage_(GadgetID(LIG), #LVM_SETITEM, 0, @Var)
; вторая колонка не рисуется...
Var\iSubItem = 1
Var\iImage = 1
SendMessage_(GadgetID(LIG), #LVM_SETITEM, 0, @Var)
Next i
EndIf
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Quit = 1
EndSelect
Until Quit
EndОтредактировано nolnolsem (18.01.2013 17:10:57)
