You may want to play movie in the back
You can apply it without any problem with Windows 8.1,10,11
Code: Select all
#LVM_GETHEADER = #LVM_FIRST + 31
; Globals
Global oldListIconCallback, hHeader, brush
brush=CreateSolidBrush_(#Yellow)
Procedure SubclassedListIcon(hWnd, uMsg, wParam, lParam)
Protected hdi.hd_item
result = CallWindowProc_(oldListIconCallback, hWnd, uMsg, wParam, lParam)
Select uMsg
Case #WM_NOTIFY
*pnmh.NMHDR = lparam
;--> Get handle to ListIcon header control
If *pnmh\code = #NM_CUSTOMDRAW
*pnmcd.NMCUSTOMDRAW = lparam
;--> Determine drawing stage
Select *pnmcd\dwDrawStage
Case #CDDS_PREPAINT
result = #CDRF_NOTIFYITEMDRAW
Case #CDDS_ITEMPREPAINT
text$=GetGadgetItemText(0, -1, *pnmcd\dwItemSpec)
If *pnmcd\uItemState & #CDIS_SELECTED
DrawFrameControl_(*pnmcd\hdc, *pnmcd\rc, #DFC_BUTTON, #DFCS_BUTTONPUSH|#DFCS_PUSHED)
*pnmcd\rc\left+2 : *pnmcd\rc\top+1
Else
DrawFrameControl_(*pnmcd\hdc, *pnmcd\rc, #DFC_BUTTON, #DFCS_BUTTONPUSH)
EndIf
*pnmcd\rc\bottom-1 : *pnmcd\rc\right-1
SetBkMode_(*pnmcd\hdc,#TRANSPARENT)
If *pnmcd\dwItemSpec&1
FillRect_(*pnmcd\hdc, *pnmcd\rc, brush)
SetTextColor_(*pnmcd\hdc, #Black)
Else
FillRect_(*pnmcd\hdc, *pnmcd\rc, brush)
SetTextColor_(*pnmcd\hdc, #Red)
EndIf
If *pnmcd\rc\right>*pnmcd\rc\left
DrawText_(*pnmcd\hdc, @text$, Len(text$), *pnmcd\rc, #DT_CENTER|#DT_VCENTER|#DT_SINGLELINE|#DT_END_ELLIPSIS)
EndIf
result = #CDRF_SKIPDEFAULT
EndSelect
EndIf
EndSelect
ProcedureReturn result
EndProcedure
Procedure liCB()
InvalidateRect_(GadgetID(0),0,1)
EndProcedure
Procedure sizeCB()
ResizeWindow(1,WindowX(0)+175,WindowY(0)+150,#PB_Ignore,#PB_Ignore)
EndProcedure
UsePNGImageDecoder()
LoadImage(0, GetTemporaryDirectory()+"890FX-Deluxe4(m).png", 0)
ResizeImage(0,1024,768)
OpenWindow(0, 0, 0,1024,768, "Window_0",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
ImageGadget(10,0,0,1024,768,ImageID(0))
DisableGadget(10,1)
OpenWindow(1, 0, 0,700, 500, "Window_0",#PB_Window_BorderLess|#PB_Window_ScreenCentered,WindowID(0))
SetWindowLong_(WindowID(1),#GWL_EXSTYLE,#WS_EX_LAYERED)
SetLayeredWindowAttributes_(WindowID(1),#Blue,0,#LWA_COLORKEY)
UseGadgetList(WindowID(1))
ListIconGadget(0, 0, 0, 700, 500, "No.", 30, #PB_ListIcon_GridLines | #PB_ListIcon_FullRowSelect | #PB_ListIcon_AlwaysShowSelection)
SetGadgetColor(0,#PB_Gadget_BackColor,#Blue)
SetGadgetColor(0,#PB_Gadget_FrontColor,$FFFFFF)
SetGadgetColor(0,#PB_Gadget_LineColor,$FFFFFF)
;hHeader = SendMessage_(GadgetID(0), #LVM_GETHEADER, 0, 0)
AddGadgetColumn(0, 1, "Player names", 150)
AddGadgetColumn(0, 2, "Pos", 50)
AddGadgetColumn(0, 3, "KP", 35)
AddGadgetColumn(0, 4, "TA", 35)
AddGadgetColumn(0, 5, "PS", 35)
AddGadgetColumn(0, 6, "SH", 35)
AddGadgetColumn(0, 7, "PC", 35)
AddGadgetColumn(0, 8, "HE", 35)
AddGadgetColumn(0, 9, "ST", 35)
AddGadgetColumn(0, 10, "SP", 35)
AddGadgetColumn(0, 11, "BC", 35)
AddGadgetColumn(0, 12, "FT", 35)
AddGadgetColumn(0, 13, "PF", 35)
;Next
;Add some data
For b=0 To 99; Add 100 rows.
AddGadgetItem(0,-1,"")
Next
For i = 0 To 99
For j = 0 To 50
SetGadgetItemText(0,i,Str(i+j),j)
Next j
Next i
oldListIconCallback = SetWindowLongPtr_(GadgetID(0), #GWL_WNDPROC, @SubclassedListIcon())
BindEvent(#PB_Event_MoveWindow,@sizeCB())
Repeat
WaitWindowEvent(1)
Until GetAsyncKeyState_(#VK_ESCAPE) & $8000 = $8000 Or WaitWindowEvent(1) = #PB_Event_CloseWindow
DeleteObject_(brush)
End