Hi morosh
#1 :
Code: Select all
Global oldhproc, header_h,header,col,i.ICONINFO
Procedure SetHeaderImage(Gadget, Image, Column,index)
HwndHeader = SendMessage_(GadgetID(Gadget), #LVM_GETHEADER, 0, 0)
VarHeader.HDITEM\mask = #HDI_BITMAP | #HDI_FORMAT
VarHeader\fmt = #HDF_BITMAP
VarHeader\hbm = ImageID(index)
SendMessage_(HwndHeader, #HDM_SETITEM, Column, @VarHeader)
EndProcedure
Procedure lihCB(hWnd, uMsg, wParam, lParam)
Select uMsg
Case #HDM_LAYOUT
result = CallWindowProc_(oldhproc, hWnd, uMsg, 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_(oldhproc, hWnd, uMsg, wParam, lParam)
EndSelect
ProcedureReturn result
EndProcedure
Procedure sizeCB()
ResizeGadget(0,10,10,WindowWidth(0)-20,WindowHeight(0)-50)
EndProcedure
header_h = 40
LoadFont(0,"Georgia",16,#PB_Font_Bold)
LoadFont(1,"Tahoma",8)
LoadFont(2,"Tahoma",12)
LoadImage(100, #PB_Compiler_Home + "examples/Sources/Data/PureBasicLogo.bmp")
OpenWindow(0, 0, 0, 600, 400, "ListIcon Header", #PB_Window_SystemMenu |#PB_Window_ScreenCentered|#PB_Window_SizeGadget)
ListIconGadget(0, 10, 10, 580, 350, "", 0,#PB_ListIcon_GridLines|#PB_ListIcon_FullRowSelect )
AddGadgetColumn(0,1,"",200)
AddGadgetColumn(0,2,"",200)
AddGadgetColumn(0,3,"",200)
For l = 1 To 100
AddGadgetItem(0, -1, Str(l)+Chr(10) + "Item " + Str(l) + Chr(10)+"Item " + Str(l)+ Chr(10)+"Item " + Str(l))
Next
Dim order(3)
order(0) = 1
order(1) = 2
order(2) = 3
SendMessage_(GadgetID(0), #LVM_SETCOLUMNORDERARRAY, 4, @order())
SetGadgetColor(0,#PB_Gadget_BackColor,$E2FEFE)
SetGadgetFont(0,FontID(2))
header = SendMessage_(GadgetID(0), #LVM_GETHEADER, 0, 0)
oldhproc = SetWindowLongPtr_(header, #GWL_WNDPROC, @lihCB())
SendMessage_(header,#HDM_SETBITMAPMARGIN,0,0)
CreateImage(0,600,60,24,$FFFFFF)
StartDrawing(ImageOutput(0))
DrawImage(ImageID(100),0,0,250,60)
DrawingFont(FontID(0))
DrawingMode(#PB_2DDrawing_Transparent)
DrawText(5,5,"RASHAD",$0000FF,$FFFFFF)
StopDrawing()
CreateImage(1,600,60,24,$FFFFFF)
StartDrawing(ImageOutput(1))
DrawingFont(FontID(0))
DrawingMode(#PB_2DDrawing_Transparent)
DrawText(10,10,"RASHAD",$000000,$FFFFFF)
DrawingFont(FontID(1))
DrawingMode(#PB_2DDrawing_Transparent)
DrawText(10,35,"New Tech.",$0000FF,$E0FEFE)
StopDrawing()
CreateImage(2,600,60,24,$FFFFFF)
StartDrawing(ImageOutput(2))
DrawingFont(FontID(0))
DrawingMode(#PB_2DDrawing_Transparent)
DrawText(10,15,"RASHAD",$FF0000,$FFFFFF)
StopDrawing()
SetHeaderImage(0, 0, 1,0)
SetHeaderImage(0, 1, 2,1)
SetHeaderImage(0, 2, 3,2)
BindEvent(#PB_Event_SizeWindow,@sizeCB())
Repeat
Until WaitWindowEvent() = #PB_Event_CloseWindow
#2 :
Code: Select all
#HDF_IMAGE = $800
#HDI_IMAGE = $20
Global oldhproc, header_h,header,col,i.ICONINFO
i\fIcon = #True
Procedure SetHeaderImage(Gadget, Image, Column,index)
HwndHeader = SendMessage_(GadgetID(Gadget), #LVM_GETHEADER, 0, 0)
VarHeader.HDITEM\mask = #HDI_IMAGE | #HDI_FORMAT; | #HDI_TEXT
VarHeader\fmt = #HDF_IMAGE
VarHeader\iImage = index
SendMessage_(HwndHeader, #HDM_SETITEM, Column, @VarHeader)
EndProcedure
Procedure lihCB(hWnd, uMsg, wParam, lParam)
Select uMsg
Case #HDM_LAYOUT
result = CallWindowProc_(oldhproc, hWnd, uMsg, 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_(oldhproc, hWnd, uMsg, wParam, lParam)
EndSelect
ProcedureReturn result
EndProcedure
Procedure sizeCB()
ResizeGadget(0,10,10,WindowWidth(0)-20,WindowHeight(0)-50)
EndProcedure
header_h = 40
LoadFont(0,"Georgia",16,#PB_Font_Bold)
LoadFont(1,"Tahoma",8)
LoadFont(2,"Tahoma",12)
LoadImage(100, #PB_Compiler_Home + "examples/Sources/Data/PureBasicLogo.bmp")
OpenWindow(0, 0, 0, 600, 400, "ListIcon Header", #PB_Window_SystemMenu |#PB_Window_ScreenCentered|#PB_Window_SizeGadget)
ListIconGadget(0, 10, 10, 580, 350, "", 0,#PB_ListIcon_GridLines|#PB_ListIcon_FullRowSelect )
AddGadgetColumn(0,1,"",200)
AddGadgetColumn(0,2,"",200)
AddGadgetColumn(0,3,"",200)
For l = 1 To 100
AddGadgetItem(0, -1, Str(l)+Chr(10) + "Item " + Str(l) + Chr(10)+"Item " + Str(l)+ Chr(10)+"Item " + Str(l))
Next
Dim order(3)
order(0) = 1
order(1) = 2
order(2) = 3
SendMessage_(GadgetID(0), #LVM_SETCOLUMNORDERARRAY, 4, @order())
SetGadgetColor(0,#PB_Gadget_BackColor,$E2FEFE)
SetGadgetFont(0,FontID(2))
header = SendMessage_(GadgetID(0), #LVM_GETHEADER, 0, 0)
oldhproc = SetWindowLongPtr_(header, #GWL_WNDPROC, @lihCB())
SendMessage_(header,#HDM_SETBITMAPMARGIN,0,0)
CreateImage(0,300,60,24,$FFFFFF)
StartDrawing(ImageOutput(0))
DrawImage(ImageID(100),0,0,250,60)
DrawingFont(FontID(0))
DrawingMode(#PB_2DDrawing_Transparent)
DrawText(5,5,"RASHAD",$0000FF,$FFFFFF)
StopDrawing()
CreateImage(1,300,60,24,$FFFFFF)
StartDrawing(ImageOutput(1))
DrawingFont(FontID(0))
DrawingMode(#PB_2DDrawing_Transparent)
DrawText(10,10,"RASHAD",$000000,$FFFFFF)
DrawingFont(FontID(1))
DrawingMode(#PB_2DDrawing_Transparent)
DrawText(10,35,"New Tech.",$0000FF,$E0FEFE)
StopDrawing()
CreateImage(2,300,60,24,$FFFFFF)
StartDrawing(ImageOutput(2))
DrawingFont(FontID(0))
DrawingMode(#PB_2DDrawing_Transparent)
DrawText(10,15,"RASHAD",$FF0000,$FFFFFF)
StopDrawing()
hilist = ImageList_Create_(300,header_h, #ILC_MASK | #ILC_COLOR32, 0, 5)
SendMessage_(GadgetID(0), #LVM_SETIMAGELIST, #LVSIL_SMALL, hilist )
i\hbmMask = ImageID(0)
i\hbmColor = ImageID(0)
curHnd = CreateIconIndirect_(i)
ImageList_AddIcon_(hilist , curHnd)
i\hbmMask = ImageID(1)
i\hbmColor = ImageID(1)
curHnd_1 = CreateIconIndirect_(i)
ImageList_AddIcon_(hilist , curHnd_1)
i\hbmMask = ImageID(2)
i\hbmColor = ImageID(2)
curHnd_2 = CreateIconIndirect_(i)
ImageList_AddIcon_(hilist , curHnd_2)
SetHeaderImage(0, 0, 1,0)
SetHeaderImage(0, 1, 2,1)
SetHeaderImage(0, 2, 3,2)
BindEvent(#PB_Event_SizeWindow,@sizeCB())
Repeat
Until WaitWindowEvent() = #PB_Event_CloseWindow