Hallo Leute,
Danke für eure Unterstützung. Hab mal das auf mein Beispiel gebracht!
Code: Alles auswählen
EnableExplicit
; Define *DefaultListIconCallback.I
Global *DefaultListIconCallback
Enumeration
EndEnumeration
#ColumnOfCenteredHeader = 0
Global Work_L_ListIcon
Global b
Procedure Callback_Work_ListIcon(WindowHandle.I, Msg.I, WParam.I, LParam.I)
; Shared *DefaultListIconCallback.I
Protected HeaderText.S
Protected *NMCustomDraw.NMCUSTOMDRAW
Protected *NMHdr.NMHDR
Protected Result.I
Result = CallWindowProc_(*DefaultListIconCallback, WindowHandle.I, Msg.I,WParam.I, LParam.I)
If Msg = #WM_NOTIFY
*NMHdr = LParam
If *NMHdr\code = #NM_CUSTOMDRAW
*NMCustomDraw = LParam
Select *NMCustomDraw\dwDrawStage
Case #CDDS_PREPAINT
Result = #CDRF_NOTIFYITEMDRAW
Case #CDDS_ITEMPREPAINT
If *NMCustomDraw\dwItemSpec = #ColumnOfCenteredHeader
SetBkMode_(*NMCustomDraw\hdc, #TRANSPARENT)
HeaderText = GetGadgetItemText(Work_L_ListIcon, -1, *NMCustomDraw\dwItemSpec)
DrawText_(*NMCustomDraw\hdc, @HeaderText, Len(HeaderText),
*NMCustomDraw\rc,
#DT_CENTER | #DT_VCENTER | #DT_SINGLELINE)
Result = #CDRF_SKIPDEFAULT
EndIf
EndSelect
EndIf
EndIf
ProcedureReturn Result
EndProcedure
If OpenWindow(0,0,0,500,250,"Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
Work_L_ListIcon = ListIconGadget(#PB_Any,10,10,480,230,"Test-Überschrift",400,0)
For b = 0 To 14
AddGadgetItem(Work_L_ListIcon, b, "Column " + Str(b) )
Next
*DefaultListIconCallback = SetWindowLongPtr_(GadgetID(Work_L_ListIcon), #GWL_WNDPROC,@Callback_Work_ListIcon())
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
Da ich bereits einen ListiconCallback habe, habe ich die Sache anschliessend
integriert und getest. Was zu Folge hatte das mein Windowsfenster nur teilweise angezeigt wird!
Keine Ahnung was jetzt falsch ist, wobei Demo läuft!
Gruss ... Velindos!
Windows 7/8/8.1/10 (32/64-Bit) |Ubuntu 10.4 (64-Bit) |Purebasic 5.71 LTS (32/64-Bit)