Code: Select all
#HDF_BITMAP_ON_RIGHT = 4096
#HDF_IMAGE = 2048
#HDF_STRING = 16384
#HDI_TEXT = 2
#HDI_IMAGE = 32
#HDI_FORMAT = 4
Global oldproc, header_h
Procedure InsertImg(Row,Col,Img)
var.lv_item
Var\mask = #LVIF_IMAGE
Var\iItem = Row
Var\iSubItem = Col
Var\iImage = Img ;Index of image in the list
SendMessage_(GadgetID(0), #LVM_SETITEM, 0, @Var)
EndProcedure
Procedure SetHeaderImage(Header,Col)
VarHeader.HDITEM
VarHeader\mask = #HDI_IMAGE
VarHeader\fmt = #HDF_IMAGE
VarHeader\iImage = 1
SendMessage_(Header , #HDM_SETITEM, Col, @VarHeader)
EndProcedure
Procedure Hheight(hwnd, msg, wParam, lParam)
Select msg
Case #HDM_LAYOUT
result = CallWindowProc_(oldproc, hwnd, msg, wParam, lParam)
*hdlayout.HD_LAYOUT = lParam
If *hdlayout\prc <> 0
*rect.RECT = *hdlayout\prc
*rect\top = header_h
EndIf
If *hdlayout\pwpos <> 0
*windowpos.WINDOWPOS = *hdlayout\pwpos
*windowpos\cy = header_h
EndIf
Default
result = CallWindowProc_(oldproc, hWnd, Msg, wParam, lParam)
EndSelect
ProcedureReturn result
EndProcedure
LoadImage(10,"g:\image4.bmp") ;Use your Own Image
LoadImage(20,"g:\image5.bmp") ;Use your Own Image
CreateImage(0,32,32)
CreateImage(1,32,32)
StartDrawing(ImageOutput(1))
DrawImage(ImageID(10),2,2,28,28)
StopDrawing()
iinf.ICONINFO
iinf\hbmMask = ImageID(0)
iinf\hbmColor = ImageID(1)
Icwnd = CreateIconIndirect_(iinf)
CreateImage(2,32,32)
CreateImage(3,32,32)
StartDrawing(ImageOutput(3))
DrawImage(ImageID(20),2,2,28,28)
StopDrawing()
iinf\hbmMask = ImageID(2)
iinf\hbmColor = ImageID(3)
Icwnd2 = CreateIconIndirect_(iinf)
For Img = 0 To 3
FreeImage(Img)
Next
LoadFont(0,"Broadway",16)
OpenWindow(0,0,0,800,600, "Test", #PB_Window_ScreenCentered |#PB_Window_SystemMenu)
ListIconGadget(0,10,10,780,540,"Column 1",250,#PB_ListIcon_MultiSelect|#PB_ListIcon_FullRowSelect| #PB_ListIcon_GridLines)
Header = SendMessage_(GadgetID(0), #LVM_GETHEADER, 0, 0)
;SetGadgetColor(0,#PB_Gadget_LineColor,0)
SetGadgetFont(0,FontID(0))
AddGadgetColumn(0, 1, "Column 2",250)
AddGadgetColumn(0, 2, "Column 3",255)
SendMessage_(GadgetID(0), #LVM_SETEXTENDEDLISTVIEWSTYLE , #LVS_EX_SUBITEMIMAGES, #LVS_EX_SUBITEMIMAGES)
ILwnd = ImageList_Create_(32,32,#ILC_COLOR32| #ILC_MASK, 0, 100)
ImageList_AddIcon_(ILwnd,Icwnd)
ImageList_AddIcon_(ILwnd,Icwnd2)
SendMessage_(GadgetID(0), #LVM_SETIMAGELIST, #LVSIL_SMALL, ILwnd)
For i = 0 To 5
AddGadgetItem(0, -1, "111"+Chr(10)+ "222"+Chr(10)+"333"+ Chr(10) + "444",0)
Next
ButtonGadget(1,10,570,60,24,"Insert")
ButtonGadget(2,80,570,60,24,"Change")
oldproc = SetWindowLong_(Header, #GWL_WNDPROC, @Hheight())
;InsertImg(0,1,0)
Image = 1
header_h = 32
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Quit = 1
Case #PB_Event_Gadget
Select EventGadget()
Case 1
SetHeaderImage(Header,1)
InsertImg(0,1,1)
InsertImg(0,2,1)
InsertImg(3,2,1)
Case 2
Image ! 1
InsertImg(0,1,Image)
InsertImg(3,2,Image)
EndSelect
EndSelect
Until Quit = 1
End