Code: Select all
; constantes des Gadgets
Enumeration
#MainWindow
#ListIconGadget1
#Image
EndEnumeration
#HDF_SORTDOWN = $200
#HDF_SORTUP = $400
Structure LVCOLUMN
mask.l
fmt.l
cx.l
pszText.l
cchTextMax.l
iSubItem.l
iImage.l
iOrder.l
EndStructure
; ;========================================================================================
; ;========================================================================================
If OpenWindow(#MainWindow, 0, 0, 420, 300, #PB_Window_ScreenCentered | #PB_Window_SystemMenu, " Header image")
If CreateGadgetList(WindowID()) And ListIconGadget(#ListIconGadget1, 10, 55, 400, 236, "Colonne 1", 398 / 4, #PB_ListIcon_MultiSelect)
AddGadgetColumn(#ListIconGadget1, 1, "Column 2", 398 / 4)
AddGadgetColumn(#ListIconGadget1, 2, "Colonne 3", 398 / 4)
AddGadgetColumn(#ListIconGadget1, 3, "Column 4", 398 / 4)
For i.b = 1 To 10
AddGadgetItem(#ListIconGadget1, -1, "111" + Chr(10) + "222" + Chr(10) + "333" + Chr(10) + "444" )
Next i
ItemImage = CatchImage(#Image, ?CroixIco) ; get the image Handle
; get headerID, it's the control, not the GadgetID(#ListIconGadget1)
HwndHeader = sendmessage_(GadgetID(#ListIconGadget1), #LVM_GETHEADER, 0, 0)
;;============== first column Image to the right ========================
; get text of 1st header col
TextColumn.s = Space(255)
ColumnNumber = 0
Var.LVCOLUMN
Var\mask = #LVCF_TEXT
Var\pszText = @TextColumn
Var\cchTextMax = 255
SendMessage_(GadgetID(#ListIconGadget1), #LVM_GETCOLUMN, ColumnNumber,@Var)
; icone 1st column to the right
; variable on HDITEM
VarHeader.HDITEM
VarHeader\mask = #HDI_BITMAP | #HDI_TEXT | #HDI_FORMAT
VarHeader\fmt = #HDF_BITMAP | #HDF_BITMAP_ON_RIGHT | #HDF_STRING
VarHeader\hbm = ItemImage
VarHeader\pszText = @TextColumn
VarHeader\cchTextMax = Len(TextColumn)
SendMessage_(HwndHeader, #HDM_SETITEM, ColumnNumber , @VarHeader)
;; ========================================================================
;;============== 2nd column Image to the left ===========================
; get text of 2nd header col
TextColumn.s = Space(255)
ColumnNumber = 1
Var.LVCOLUMN
Var\mask = #LVCF_TEXT
Var\pszText = @TextColumn
Var\cchTextMax = 255
SendMessage_(GadgetID(#ListIconGadget1), #LVM_GETCOLUMN, ColumnNumber,@Var)
; icone 2nd column to the right
VarHeader\mask = #HDI_BITMAP | #HDI_TEXT | #HDI_FORMAT
VarHeader\fmt = #HDF_BITMAP | #HDF_STRING ; here it change
VarHeader\hbm = ItemImage
VarHeader\pszText = @TextColumn
VarHeader\cchTextMax = Len(TextColumn)
SendMessage_(HwndHeader, #HDM_SETITEM, ColumnNumber , @VarHeader)
;; =======================================================================
; fmt could specify HDF_SORTDOWN with Version 6.00 of IE --> Draws a down-arrow on this item. This is typically used To indicate that information in the current window is sorted on this column in descending order.
; fmt could specify HDF_SORTUP with Version 6.00 of IE --> Draws an up-arrow on this item. This is typically used To indicate that information in the current window is sorted on this column in ascending order.
EndIf
EndIf
Repeat
Select WaitWindowEvent()
Case #PB_EventCloseWindow
Quit + 1
EndSelect
Until Quit
End
DataSection ; icon values
CroixIco :
Data.l $03364D42, $00000000, $00360000, $00280000, $00100000, $00100000
Data.l $00010000, $00000018, $03000000, $0EC30000, $0EC30000, $00000000
Data.l $00000000, $C0C00000, $CECECEC0, $B6B6B6B6, $B6B6B6B6, $B6B6B6B6
Data.l $B6B6B6B6, $B6B6B6B6, $B6B6B6B6, $B6B6B6B6, $B6B6B6B6, $B6B6B6B6
Data.l $C0CECECE, $C0C0C0C0, $FFDFFFC0, $FFFFFFFF, $FFFFFFFF, $FFFFFFFF
Data.l $FFFFFFFF, $FFFFFFFF, $FFFFFFFF, $FFFFFFFF, $FFFFFFFF, $FFDFFFFF
Data.l $CEB6B6B6, $DFFFCECE, $E97E65FF, $13BD3713, $3F1DBD37, $BF3F1DBF
Data.l $18C03C18, $3812C03C, $C0350DC2, $05C12E05, $2C02C12E, $E8765BC0
Data.l $B6FFDFFF, $FFFFB6B6, $DE4119FF, $25DE4E25, $5835DE4E, $E25835E2
Data.l $2CE25431, $5223E455, $E94B13E6, $0AE8430A, $3904E843, $C02C02E0
Data.l $B6FFFFFF, $FFFFB6B6, $E24E26FF, $FFE35B3A, $FFFFFFFF, $E25835FF
Data.l $2CE25431, $5223E455, $E94B13E6, $FFFFFFFF, $430AFFFF, $C12E05E8
Data.l $B6FFFFFF, $FFFFB6B6, $E24E26FF, $FFE35B3A, $FFFFFFFF, $FFFFFFFF
Data.l $37E76640, $5D2CE863, $FFFFFFE9, $FFFFFFFF, $430AFFFF, $C12E05E8
Data.l $B6FFFFFF, $FFFFB6B6, $E25431FF, $46E56546, $FFFFE565, $FFFFFFFF
Data.l $37FFFFFF, $FFFFE863, $FFFFFFFF, $0EFFFFFF, $480EE948, $C0350DE9
Data.l $B6FFFFFF, $FFFFB6B6, $E45F3FFF, $50E66D50, $7054E66D, $FFFFFFE7
Data.l $FFFFFFFF, $FFFFFFFF, $FFFFFFFF, $1CE65223, $4B1CE04B, $C03C18E0
Data.l $B6FFFFFF, $FFFFB6B6, $E5684BFF, $5AE8755A, $7356E875, $E66C4FE7
Data.l $FFFFFFFF, $FFFFFFFF, $E45024FF, $24DF4C1F, $5024E450, $BF3F1DE4
Data.l $B6FFFFFF, $FFFFB6B6, $E77054FF, $62E97C62, $755AE97C, $FFFFFFE8
Data.l $FFFFFFFF, $FFFFFFFF, $FFFFFFFF, $2CE24E26, $502CE150, $BE4223E1
Data.l $B6FFFFFF, $FFFFB6B6, $E8785DFF, $6CEB866C, $FFFFEB86, $FFFFFFFF
Data.l $3FFFFFFF, $FFFFE45F, $FFFFFFFF, $2CFFFFFF, $512CE151, $BE4223E1
Data.l $B6FFFFFF, $FFFFB6B6, $E9836AFF, $FFED947E, $FFFFFFFF, $FFFFFFFF
Data.l $48E76F53, $5F3FE567, $FFFFFFE4, $FFFFFFFF, $5431FFFF, $BE4223E2
Data.l $B6FFFFFF, $FFFFB6B6, $E9836AFF, $FFED947E, $FFFFFFFF, $EB866CFF
Data.l $5EE97E65, $765BE879, $E77054E8, $FFFFFFFF, $5431FFFF, $BE4223E2
Data.l $B6FFFFFF, $FFFFB6B6, $EE9883FF, $7EF0A895, $947EED94, $EB866CED
Data.l $5EE97E65, $765BE879, $E77054E8, $48E56848, $5937E568, $BF4121E3
Data.l $B6FFFFFF, $DFFFB6B6, $F2B5A6FF, $65ED947E, $7E65E97E, $E8785DE9
Data.l $53E77356, $6D50E76F, $E56748E6, $3FE45F3F, $512CE45F, $EA8670E1
Data.l $CEFFDFFF, $C0C0CECE, $FFDFFFC0, $FFFFFFFF, $FFFFFFFF, $FFFFFFFF
Data.l $FFFFFFFF, $FFFFFFFF, $FFFFFFFF, $FFFFFFFF, $FFFFFFFF, $FFDFFFFF
Data.b - 64, -64, -64, -64, -64, -64
EndDataSection