Habe den Code noch etwas aufbereitet, jetzt werden die Bänder in der richtigen Reihenfolge wiederhergestellt.
Code: Alles auswählen
Global Rebar.l,RB.REBARBANDINFO
Procedure SaveBands()
If CreateFile(0, "Bandall.data")
For I = 0 To SendMessage_(rebar,#RB_GETBANDCOUNT,0,0)-1
SendMessage_(Rebar,#RB_GETBANDINFO,I,RB)
WriteData(0,RB,SizeOf(RB))
Next I
CloseFile(0)
EndIf
EndProcedure
Procedure RestoreBands()
If ReadFile(0, "Bandall.data")
FreeGadget(0)
FreeGadget(1)
FreeGadget(2)
For I = 0 To SendMessage_(rebar,#RB_GETBANDCOUNT,0,0)-1
ReadData(0,RB,SizeOf(RB))
Select RB\lParam
Case 0
RB\hwndChild = ToolBarID(0)
RB\lpText=@"Datei"
Case 1
RB\hwndChild = StringGadget(0,0,0,0,0, "Edit 1")
RB\lpText=@"Edit 1"
Case 2
RB\hwndChild = StringGadget(1,0,0,0,0, "Edit 2")
RB\lpText=@"Edit 2"
Case 3
RB\hwndChild = StringGadget(2,0,0,0,0, "Edit 3")
RB\lpText=@"Edit 3"
EndSelect
SendMessage_(Rebar,#RB_SETBANDINFO,I,RB)
Next I
CloseFile(0)
EndIf
EndProcedure
If OpenWindow(0, 0,0,800,600, "Rebar-Test", #PB_Window_SizeGadget|#PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget)
If CreateToolBar(0, WindowID(0))
ToolBarStandardButton(0, #PB_ToolBarIcon_New)
ToolBarStandardButton(1, #PB_ToolBarIcon_Open)
ToolBarStandardButton(2, #PB_ToolBarIcon_Save)
ToolBarToolTip(0, 0, "neues Dokument")
ToolBarToolTip(0, 1, "Dokument öffnen")
ToolBarToolTip(0, 2, "Dokument speichern")
EndIf
SendMessage_(ToolBarID(0),#TB_SETSTYLE,0,#CCS_NODIVIDER|#CCS_NOPARENTALIGN|#WS_VISIBLE|#WS_CHILD|#TBSTYLE_FLAT|#TBSTYLE_TRANSPARENT|#TB_AUTOSIZE)
Rebar = CreateWindowEx_(0,"ReBarWindow32","",#WS_BORDER|#WS_CHILD|#WS_VISIBLE|#CCS_NODIVIDER|#RBS_BANDBORDERS|#RBS_AUTOSIZE,0,0,WindowWidth(0),120,WindowID(0),2000,0,0)
RB\cbSize = SizeOf(RB)
RB\fMask = #RBBIM_CHILDSIZE|#RBBIM_HEADERSIZE|#RBBIM_STYLE|#RBBIM_CHILD|#RBBIM_SIZE|#RBBIM_TEXT|#RBBIM_LPARAM
RB\cxMinChild = 100
RB\cxHeader = 50
RB\cyChild = 24
RB\cyMinChild = 24
RB\fStyle = #RBBS_GRIPPERALWAYS|#RBBS_CHILDEDGE
RB\cx = 150
RB\hwndChild = ToolBarID(0)
RB\lpText=@"Datei"
RB\lParam = 0
SendMessage_(Rebar,#RB_INSERTBAND,0,RB)
RB\cx = 100
RB\hwndChild = StringGadget(0, 0,0,0,0, "Edit 1")
RB\lParam = 1
RB\lpText=@"Edit 1"
SendMessage_(Rebar,#RB_INSERTBAND,1,RB)
RB\cx = 200
RB\hwndChild = StringGadget(1, 0,0,0,0, "Edit 2")
RB\lpText=@"Edit 2"
RB\lParam = 2
SendMessage_(Rebar,#RB_INSERTBAND,2,RB)
RB\cx = 100
RB\hwndChild = StringGadget(2, 0,0,0,0, "Edit 3")
RB\lpText=@"Edit 3"
RB\lParam = 3
SendMessage_(Rebar,#RB_INSERTBAND,3,RB)
RestoreBands()
Repeat
Event = WaitWindowEvent()
Select Event
Case #WM_SIZE
SetWindowPos_(Rebar, #Null, 0, 0, WindowWidth(0),SendMessage_(Rebar,#RB_GETBARHEIGHT,0,0), #SWP_NOMOVE | #SWP_NOZORDER | #SWP_NOACTIVATE)
Case #PB_Event_Gadget
Select EventGadget()
EndSelect
Case #PB_Event_CloseWindow
SaveBands()
Quit = 1
EndSelect
Until Quit = 1
EndIf
End