Hi,
so hier noch ein Beispiel, nun können einzelen Spalten bestimmt werden welche no Resize sein sollen.
Was jetzt nur noch fehlt ist das der Cursor bei der gesperrten Spalte nicht mehr anzeigt das man die
Spalte vergrößern kann.
Versucht es mal, vielleicht bekommt es ja jemand hin.
Code: Alles auswählen
;
; for PB 4.00
;
Enumeration
#MainWindow = 0
#ListIconGadget = 0
EndEnumeration
#LVM_GETHEADER = (#LVM_FIRST + 31)
Global HerderID.l, old.l
Macro HeaderIDFromGadgetID(GadgetID)
SendMessage_(GadgetID, #LVM_GETHEADER, 0, 0)
EndMacro
Procedure HeaderCallBack(Window, msg, wParam, lParam)
Protected *NotifyMsgInfos.NMHEADER = lParam
If msg = #WM_NOTIFY
Select *NotifyMsgInfos\hdr\code
Case #HDN_BEGINTRACKA, #HDN_BEGINTRACKW
If *NotifyMsgInfos\hdr\idFrom = HeaderID
If *NotifyMsgInfos\iItem = 0 ; zu sperrende Spalte
ProcedureReturn #True
ElseIf *NotifyMsgInfos\iItem = 1 ; zu sperrende Spalte
ProcedureReturn #True
Else
ProcedureReturn #False
EndIf
EndIf
EndSelect
EndIf
ProcedureReturn CallWindowProc_(old, Window, msg, wParam, lParam)
EndProcedure
;{- Abfrage
If OpenWindow(#MainWindow, 0, 0, 540, 300, "", #PB_Window_ScreenCentered | #PB_Window_SystemMenu)
If CreateGadgetList(WindowID(#MainWindow)) And ListIconGadget(#ListIconGadget, 10, 10, 520, 280, "Spalte 0", 100, #PB_ListIcon_MultiSelect | #PB_ListIcon_GridLines | #PB_ListIcon_HeaderDragDrop | #PB_ListIcon_FullRowSelect)
AddGadgetColumn(#ListIconGadget, 1, "Spalte 1", 100)
AddGadgetColumn(#ListIconGadget, 2, "Spalte 2", 300)
HerderID = HeaderIDFromGadgetID(GadgetID(#ListIconGadget))
For i = 1 To 10
AddGadgetItem(#ListIconGadget, -1, "a"+Str(i) + Chr(10) + "b"+Str(i) + Chr(10) + "c"+Str(i))
Next i
old = SetWindowLong_(GadgetID(#ListIconGadget), #GWL_WNDPROC, @HeaderCallBack())
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Quit + 1
EndSelect
Until Quit
EndIf
EndIf
End
;}